[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / SystemZ / vec-conv-03.ll
blobdf1e3a4e0dc33b6b48746f06506c0b132492731b
1 ; Test conversions between integer and float elements on z15.
3 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z15 | FileCheck %s
5 ; Test conversion of f32s to signed i32s.
6 define <4 x i32> @f1(<4 x float> %floats) {
7 ; CHECK-LABEL: f1:
8 ; CHECK: vcfeb %v24, %v24, 0, 5
9 ; CHECK: br %r14
10   %dwords = fptosi <4 x float> %floats to <4 x i32>
11   ret <4 x i32> %dwords
14 ; Test conversion of f32s to unsigned i32s.
15 define <4 x i32> @f2(<4 x float> %floats) {
16 ; CHECK-LABEL: f2:
17 ; CHECK: vclfeb %v24, %v24, 0, 5
18 ; CHECK: br %r14
19   %dwords = fptoui <4 x float> %floats to <4 x i32>
20   ret <4 x i32> %dwords
23 ; Test conversion of signed i32s to f32s.
24 define <4 x float> @f3(<4 x i32> %dwords) {
25 ; CHECK-LABEL: f3:
26 ; CHECK: vcefb %v24, %v24, 0, 0
27 ; CHECK: br %r14
28   %floats = sitofp <4 x i32> %dwords to <4 x float>
29   ret <4 x float> %floats
32 ; Test conversion of unsigned i32s to f32s.
33 define <4 x float> @f4(<4 x i32> %dwords) {
34 ; CHECK-LABEL: f4:
35 ; CHECK: vcelfb %v24, %v24, 0, 0
36 ; CHECK: br %r14
37   %floats = uitofp <4 x i32> %dwords to <4 x float>
38   ret <4 x float> %floats