Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / instruction-select / constant64.mir
blobbcd4a225a321129a9d1f2b033c3e28b461d0d406
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv64 -run-pass=instruction-select %s -o - \
3 # RUN: | FileCheck %s
4 ---
5 name:            const_i64_INT_MIN
6 legalized:       true
7 regBankSelected: true
8 tracksRegLiveness: true
9 body:            |
10   bb.0:
11     liveins: $x10
13     ; CHECK-LABEL: name: const_i64_INT_MIN
14     ; CHECK: liveins: $x10
15     ; CHECK-NEXT: {{  $}}
16     ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, -1
17     ; CHECK-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[ADDI]], 63
18     ; CHECK-NEXT: $x10 = COPY [[SLLI]]
19     ; CHECK-NEXT: PseudoRET implicit $x10
20     %0:gprb(s64) = G_CONSTANT i64 -9223372036854775808
21     $x10 = COPY %0(s64)
22     PseudoRET implicit $x10
24 ...
25 ---
26 name:            const_i64_neg_9223372036854775000
27 legalized:       true
28 regBankSelected: true
29 tracksRegLiveness: true
30 body:            |
31   bb.0:
32     liveins: $x10
34     ; CHECK-LABEL: name: const_i64_neg_9223372036854775000
35     ; CHECK: liveins: $x10
36     ; CHECK-NEXT: {{  $}}
37     ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, -1
38     ; CHECK-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[ADDI]], 63
39     ; CHECK-NEXT: [[ADDI1:%[0-9]+]]:gpr = ADDI [[SLLI]], 808
40     ; CHECK-NEXT: $x10 = COPY [[ADDI1]]
41     ; CHECK-NEXT: PseudoRET implicit $x10
42     %0:gprb(s64) = G_CONSTANT i64 -9223372036854775000
43     $x10 = COPY %0(s64)
44     PseudoRET implicit $x10
46 ...
47 ---
48 name:            const_i64_INT_MAX
49 legalized:       true
50 regBankSelected: true
51 tracksRegLiveness: true
52 body:            |
53   bb.0:
54     liveins: $x10
56     ; CHECK-LABEL: name: const_i64_INT_MAX
57     ; CHECK: liveins: $x10
58     ; CHECK-NEXT: {{  $}}
59     ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, -1
60     ; CHECK-NEXT: [[SRLI:%[0-9]+]]:gpr = SRLI [[ADDI]], 1
61     ; CHECK-NEXT: $x10 = COPY [[SRLI]]
62     ; CHECK-NEXT: PseudoRET implicit $x10
63     %0:gprb(s64) = G_CONSTANT i64 9223372036854775807
64     $x10 = COPY %0(s64)
65     PseudoRET implicit $x10
67 ...
68 ---
69 name:            const_i64_9223372036854775000
70 legalized:       true
71 regBankSelected: true
72 tracksRegLiveness: true
73 body:            |
74   bb.0:
75     liveins: $x10
77     ; CHECK-LABEL: name: const_i64_9223372036854775000
78     ; CHECK: liveins: $x10
79     ; CHECK-NEXT: {{  $}}
80     ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, -1615
81     ; CHECK-NEXT: [[SRLI:%[0-9]+]]:gpr = SRLI [[ADDI]], 1
82     ; CHECK-NEXT: $x10 = COPY [[SRLI]]
83     ; CHECK-NEXT: PseudoRET implicit $x10
84     %0:gprb(s64) = G_CONSTANT i64 9223372036854775000
85     $x10 = COPY %0(s64)
86     PseudoRET implicit $x10
88 ...
89 ---
90 name:            const_i64_256
91 legalized:       true
92 regBankSelected: true
93 tracksRegLiveness: true
94 body:            |
95   bb.0:
96     liveins: $x10
98     ; CHECK-LABEL: name: const_i64_256
99     ; CHECK: liveins: $x10
100     ; CHECK-NEXT: {{  $}}
101     ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, 256
102     ; CHECK-NEXT: $x10 = COPY [[ADDI]]
103     ; CHECK-NEXT: PseudoRET implicit $x10
104     %0:gprb(s64) = G_CONSTANT i64 256
105     $x10 = COPY %0(s64)
106     PseudoRET implicit $x10
110 name:            const_i64_0
111 legalized:       true
112 regBankSelected: true
113 tracksRegLiveness: true
114 body:            |
115   bb.0:
116     liveins: $x10
118     ; CHECK-LABEL: name: const_i64_0
119     ; CHECK: liveins: $x10
120     ; CHECK-NEXT: {{  $}}
121     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x0
122     ; CHECK-NEXT: $x10 = COPY [[COPY]]
123     ; CHECK-NEXT: PseudoRET implicit $x10
124     %0:gprb(s64) = G_CONSTANT i64 0
125     $x10 = COPY %0(s64)
126     PseudoRET implicit $x10
130 name:            const_i32_INT_MIN
131 legalized:       true
132 regBankSelected: true
133 tracksRegLiveness: true
134 body:            |
135   bb.0:
136     liveins: $x10
138     ; CHECK-LABEL: name: const_i32_INT_MIN
139     ; CHECK: liveins: $x10
140     ; CHECK-NEXT: {{  $}}
141     ; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 524288
142     ; CHECK-NEXT: $x10 = COPY [[LUI]]
143     ; CHECK-NEXT: PseudoRET implicit $x10
144     %0:gprb(s32) = G_CONSTANT i32 -2147483648
145     %1:gprb(s64) = G_ANYEXT %0(s32)
146     $x10 = COPY %1(s64)
147     PseudoRET implicit $x10
151 name:            const_i32_neg_2147483000
152 legalized:       true
153 regBankSelected: true
154 tracksRegLiveness: true
155 body:            |
156   bb.0:
157     liveins: $x10
159     ; CHECK-LABEL: name: const_i32_neg_2147483000
160     ; CHECK: liveins: $x10
161     ; CHECK-NEXT: {{  $}}
162     ; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 524288
163     ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LUI]], 648
164     ; CHECK-NEXT: $x10 = COPY [[ADDIW]]
165     ; CHECK-NEXT: PseudoRET implicit $x10
166     %0:gprb(s32) = G_CONSTANT i32 -2147483000
167     %1:gprb(s64) = G_ANYEXT %0(s32)
168     $x10 = COPY %1(s64)
169     PseudoRET implicit $x10
173 name:            const_i32_INT_MAX
174 legalized:       true
175 regBankSelected: true
176 tracksRegLiveness: true
177 body:            |
178   bb.0:
179     liveins: $x10
181     ; CHECK-LABEL: name: const_i32_INT_MAX
182     ; CHECK: liveins: $x10
183     ; CHECK-NEXT: {{  $}}
184     ; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 524288
185     ; CHECK-NEXT: $x10 = COPY [[LUI]]
186     ; CHECK-NEXT: PseudoRET implicit $x10
187     %0:gprb(s32) = G_CONSTANT i32 2147483648
188     %1:gprb(s64) = G_ANYEXT %0(s32)
189     $x10 = COPY %1(s64)
190     PseudoRET implicit $x10
194 name:            const_i32_2147483000
195 legalized:       true
196 regBankSelected: true
197 tracksRegLiveness: true
198 body:            |
199   bb.0:
200     liveins: $x10
202     ; CHECK-LABEL: name: const_i32_2147483000
203     ; CHECK: liveins: $x10
204     ; CHECK-NEXT: {{  $}}
205     ; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 524288
206     ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LUI]], -648
207     ; CHECK-NEXT: $x10 = COPY [[ADDIW]]
208     ; CHECK-NEXT: PseudoRET implicit $x10
209     %0:gprb(s32) = G_CONSTANT i32 2147483000
210     %1:gprb(s64) = G_ANYEXT %0(s32)
211     $x10 = COPY %1(s64)
212     PseudoRET implicit $x10
216 name:            const_i32_256
217 legalized:       true
218 regBankSelected: true
219 tracksRegLiveness: true
220 body:            |
221   bb.0:
222     liveins: $x10
224     ; CHECK-LABEL: name: const_i32_256
225     ; CHECK: liveins: $x10
226     ; CHECK-NEXT: {{  $}}
227     ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, 256
228     ; CHECK-NEXT: $x10 = COPY [[ADDI]]
229     ; CHECK-NEXT: PseudoRET implicit $x10
230     %0:gprb(s32) = G_CONSTANT i32 256
231     %1:gprb(s64) = G_ANYEXT %0(s32)
232     $x10 = COPY %1(s64)
233     PseudoRET implicit $x10
237 name:            const_i32_0
238 legalized:       true
239 regBankSelected: true
240 tracksRegLiveness: true
241 body:            |
242   bb.0:
243     liveins: $x10
245     ; CHECK-LABEL: name: const_i32_0
246     ; CHECK: liveins: $x10
247     ; CHECK-NEXT: {{  $}}
248     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x0
249     ; CHECK-NEXT: $x10 = COPY [[COPY]]
250     ; CHECK-NEXT: PseudoRET implicit $x10
251     %0:gprb(s32) = G_CONSTANT i32 0
252     %1:gprb(s64) = G_ANYEXT %0(s32)
253     $x10 = COPY %1(s64)
254     PseudoRET implicit $x10