[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / select-nearbyint.mir
blob546be708db8fbf056c55fe2774537b28a46add63
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple aarch64-unknown-unknown -run-pass=instruction-select -mattr=+fullfp16 -verify-machineinstrs %s -o - | FileCheck %s
4 ...
5 ---
6 name:            test_v4f16.nearbyint
7 alignment:       4
8 legalized:       true
9 regBankSelected: true
10 tracksRegLiveness: true
11 machineFunctionInfo: {}
12 body:             |
13   bb.0:
14     liveins: $d0
16     ; CHECK-LABEL: name: test_v4f16.nearbyint
17     ; CHECK: liveins: $d0
18     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
19     ; CHECK: [[FRINTIv4f16_:%[0-9]+]]:fpr64 = FRINTIv4f16 [[COPY]]
20     ; CHECK: $d0 = COPY [[FRINTIv4f16_]]
21     ; CHECK: RET_ReallyLR implicit $d0
22     %0:fpr(<4 x s16>) = COPY $d0
23     %1:fpr(<4 x s16>) = G_FNEARBYINT %0
24     $d0 = COPY %1(<4 x s16>)
25     RET_ReallyLR implicit $d0
27 ...
28 ---
29 name:            test_v8f16.nearbyint
30 alignment:       4
31 legalized:       true
32 regBankSelected: true
33 tracksRegLiveness: true
34 machineFunctionInfo: {}
35 body:             |
36   bb.0:
37     liveins: $q0
39     ; CHECK-LABEL: name: test_v8f16.nearbyint
40     ; CHECK: liveins: $q0
41     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
42     ; CHECK: [[FRINTIv8f16_:%[0-9]+]]:fpr128 = FRINTIv8f16 [[COPY]]
43     ; CHECK: $q0 = COPY [[FRINTIv8f16_]]
44     ; CHECK: RET_ReallyLR implicit $q0
45     %0:fpr(<8 x s16>) = COPY $q0
46     %1:fpr(<8 x s16>) = G_FNEARBYINT %0
47     $q0 = COPY %1(<8 x s16>)
48     RET_ReallyLR implicit $q0
50 ...
51 ---
52 name:            test_v2f32.nearbyint
53 alignment:       4
54 legalized:       true
55 regBankSelected: true
56 tracksRegLiveness: true
57 machineFunctionInfo: {}
58 body:             |
59   bb.0:
60     liveins: $d0
62     ; CHECK-LABEL: name: test_v2f32.nearbyint
63     ; CHECK: liveins: $d0
64     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
65     ; CHECK: [[FRINTIv2f32_:%[0-9]+]]:fpr64 = FRINTIv2f32 [[COPY]]
66     ; CHECK: $d0 = COPY [[FRINTIv2f32_]]
67     ; CHECK: RET_ReallyLR implicit $d0
68     %0:fpr(<2 x s32>) = COPY $d0
69     %1:fpr(<2 x s32>) = G_FNEARBYINT %0
70     $d0 = COPY %1(<2 x s32>)
71     RET_ReallyLR implicit $d0
73 ...
74 ---
75 name:            test_v2f64.nearbyint
76 alignment:       4
77 legalized:       true
78 regBankSelected: true
79 tracksRegLiveness: true
80 machineFunctionInfo: {}
81 body:             |
82   bb.0:
83     liveins: $q0
85     ; CHECK-LABEL: name: test_v2f64.nearbyint
86     ; CHECK: liveins: $q0
87     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
88     ; CHECK: [[FRINTIv2f64_:%[0-9]+]]:fpr128 = FRINTIv2f64 [[COPY]]
89     ; CHECK: $q0 = COPY [[FRINTIv2f64_]]
90     ; CHECK: RET_ReallyLR implicit $q0
91     %0:fpr(<2 x s64>) = COPY $q0
92     %1:fpr(<2 x s64>) = G_FNEARBYINT %0
93     $q0 = COPY %1(<2 x s64>)
94     RET_ReallyLR implicit $q0
96 ...
97 ---
98 name:            test_f32.nearbyint
99 alignment:       4
100 legalized:       true
101 regBankSelected: true
102 tracksRegLiveness: true
103 machineFunctionInfo: {}
104 body:             |
105   bb.0:
106     liveins: $s0
108     ; CHECK-LABEL: name: test_f32.nearbyint
109     ; CHECK: liveins: $s0
110     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
111     ; CHECK: [[FRINTISr:%[0-9]+]]:fpr32 = FRINTISr [[COPY]]
112     ; CHECK: $s0 = COPY [[FRINTISr]]
113     ; CHECK: RET_ReallyLR implicit $s0
114     %0:fpr(s32) = COPY $s0
115     %1:fpr(s32) = G_FNEARBYINT %0
116     $s0 = COPY %1(s32)
117     RET_ReallyLR implicit $s0
121 name:            test_f64.nearbyint
122 alignment:       4
123 legalized:       true
124 regBankSelected: true
125 tracksRegLiveness: true
126 machineFunctionInfo: {}
127 body:             |
128   bb.0:
129     liveins: $d0
131     ; CHECK-LABEL: name: test_f64.nearbyint
132     ; CHECK: liveins: $d0
133     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
134     ; CHECK: [[FRINTIDr:%[0-9]+]]:fpr64 = FRINTIDr [[COPY]]
135     ; CHECK: $d0 = COPY [[FRINTIDr]]
136     ; CHECK: RET_ReallyLR implicit $d0
137     %0:fpr(s64) = COPY $d0
138     %1:fpr(s64) = G_FNEARBYINT %0
139     $d0 = COPY %1(s64)
140     RET_ReallyLR implicit $d0
144 name:            test_f16.nearbyint
145 alignment:       4
146 legalized:       true
147 regBankSelected: true
148 tracksRegLiveness: true
149 machineFunctionInfo: {}
150 body:             |
151   bb.0:
152     liveins: $h0
154     ; CHECK-LABEL: name: test_f16.nearbyint
155     ; CHECK: liveins: $h0
156     ; CHECK: [[COPY:%[0-9]+]]:fpr16 = COPY $h0
157     ; CHECK: [[FRINTIHr:%[0-9]+]]:fpr16 = FRINTIHr [[COPY]]
158     ; CHECK: $h0 = COPY [[FRINTIHr]]
159     ; CHECK: RET_ReallyLR implicit $h0
160     %0:fpr(s16) = COPY $h0
161     %1:fpr(s16) = G_FNEARBYINT %0
162     $h0 = COPY %1(s16)
163     RET_ReallyLR implicit $h0