[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / select-bitcast.mir
blob0846f54289d7db3beaa8f15cae92e000be4004af
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
4 --- |
5   target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
7   define void @bitcast_s32_gpr() { ret void }
8   define void @bitcast_s32_fpr() { ret void }
9   define void @bitcast_s32_gpr_fpr() { ret void }
10   define void @bitcast_s32_fpr_gpr() { ret void }
11   define void @bitcast_s64_gpr() { ret void }
12   define void @bitcast_s64_fpr() { ret void }
13   define void @bitcast_s64_gpr_fpr() { ret void }
14   define void @bitcast_s64_fpr_gpr() { ret void }
15   define void @bitcast_s64_v2f32_fpr() { ret void }
16   define void @bitcast_s64_v8i8_fpr() { ret void }
17 ...
19 ---
20 name:            bitcast_s32_gpr
21 legalized:       true
22 regBankSelected: true
23 registers:
24   - { id: 0, class: gpr }
25   - { id: 1, class: gpr }
27 body:             |
28   bb.0:
29     liveins: $w0
31     ; CHECK-LABEL: name: bitcast_s32_gpr
32     ; CHECK: [[COPY:%[0-9]+]]:gpr32all = COPY $w0
33     ; CHECK: $w0 = COPY [[COPY]]
34     %0(s32) = COPY $w0
35     %1(s32) = G_BITCAST %0
36     $w0 = COPY %1(s32)
37 ...
39 ---
40 name:            bitcast_s32_fpr
41 legalized:       true
42 regBankSelected: true
44 registers:
45   - { id: 0, class: fpr }
46   - { id: 1, class: fpr }
48 body:             |
49   bb.0:
50     liveins: $s0
52     ; CHECK-LABEL: name: bitcast_s32_fpr
53     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
54     ; CHECK: $s0 = COPY [[COPY]]
55     %0(s32) = COPY $s0
56     %1(s32) = G_BITCAST %0
57     $s0 = COPY %1(s32)
58 ...
60 ---
61 name:            bitcast_s32_gpr_fpr
62 legalized:       true
63 regBankSelected: true
65 registers:
66   - { id: 0, class: gpr }
67   - { id: 1, class: fpr }
69 body:             |
70   bb.0:
71     liveins: $w0
73     ; CHECK-LABEL: name: bitcast_s32_gpr_fpr
74     ; CHECK: [[COPY:%[0-9]+]]:gpr32all = COPY $w0
75     ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY [[COPY]]
76     ; CHECK: $s0 = COPY [[COPY1]]
77     %0(s32) = COPY $w0
78     %1(s32) = G_BITCAST %0
79     $s0 = COPY %1(s32)
80 ...
82 ---
83 name:            bitcast_s32_fpr_gpr
84 legalized:       true
85 regBankSelected: true
87 registers:
88   - { id: 0, class: fpr }
89   - { id: 1, class: gpr }
91 body:             |
92   bb.0:
93     liveins: $s0
95     ; CHECK-LABEL: name: bitcast_s32_fpr_gpr
96     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
97     ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY [[COPY]]
98     ; CHECK: $w0 = COPY [[COPY1]]
99     %0(s32) = COPY $s0
100     %1(s32) = G_BITCAST %0
101     $w0 = COPY %1(s32)
105 name:            bitcast_s64_gpr
106 legalized:       true
107 regBankSelected: true
109 registers:
110   - { id: 0, class: gpr }
111   - { id: 1, class: gpr }
113 body:             |
114   bb.0:
115     liveins: $x0
117     ; CHECK-LABEL: name: bitcast_s64_gpr
118     ; CHECK: [[COPY:%[0-9]+]]:gpr64all = COPY $x0
119     ; CHECK: $x0 = COPY [[COPY]]
120     %0(s64) = COPY $x0
121     %1(s64) = G_BITCAST %0
122     $x0 = COPY %1(s64)
126 name:            bitcast_s64_fpr
127 legalized:       true
128 regBankSelected: true
130 registers:
131   - { id: 0, class: fpr }
132   - { id: 1, class: fpr }
134 body:             |
135   bb.0:
136     liveins: $d0
138     ; CHECK-LABEL: name: bitcast_s64_fpr
139     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
140     ; CHECK: $d0 = COPY [[COPY]]
141     %0(s64) = COPY $d0
142     %1(s64) = G_BITCAST %0
143     $d0 = COPY %1(s64)
147 name:            bitcast_s64_gpr_fpr
148 legalized:       true
149 regBankSelected: true
151 registers:
152   - { id: 0, class: gpr }
153   - { id: 1, class: fpr }
154 body:             |
155   bb.0:
156     liveins: $x0
158     ; CHECK-LABEL: name: bitcast_s64_gpr_fpr
159     ; CHECK: [[COPY:%[0-9]+]]:gpr64all = COPY $x0
160     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY [[COPY]]
161     ; CHECK: $d0 = COPY [[COPY1]]
162     %0(s64) = COPY $x0
163     %1(s64) = G_BITCAST %0
164     $d0 = COPY %1(s64)
168 name:            bitcast_s64_fpr_gpr
169 legalized:       true
170 regBankSelected: true
172 registers:
173   - { id: 0, class: fpr }
174   - { id: 1, class: gpr }
176 body:             |
177   bb.0:
178     liveins: $d0
180     ; CHECK-LABEL: name: bitcast_s64_fpr_gpr
181     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
182     ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY [[COPY]]
183     ; CHECK: $x0 = COPY [[COPY1]]
184     %0(s64) = COPY $d0
185     %1(s64) = G_BITCAST %0
186     $x0 = COPY %1(s64)
190 name:            bitcast_s64_v2f32_fpr
191 legalized:       true
192 regBankSelected: true
194 registers:
195   - { id: 0, class: fpr }
196   - { id: 1, class: fpr }
198 body:             |
199   bb.0:
200     liveins: $d0
202     ; CHECK-LABEL: name: bitcast_s64_v2f32_fpr
203     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
204     ; CHECK: $x0 = COPY [[COPY]]
205     %0(s64) = COPY $d0
206     %1(<2 x s32>) = G_BITCAST %0
207     $x0 = COPY %1(<2 x s32>)
211 name:            bitcast_s64_v8i8_fpr
212 legalized:       true
213 regBankSelected: true
215 registers:
216   - { id: 0, class: fpr }
217   - { id: 1, class: fpr }
219 body:             |
220   bb.0:
221     liveins: $d0
223     ; CHECK-LABEL: name: bitcast_s64_v8i8_fpr
224     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
225     ; CHECK: $x0 = COPY [[COPY]]
226     %0(s64) = COPY $d0
227     %1(<8 x s8>) = G_BITCAST %0
228     $x0 = COPY %1(<8 x s8>)