xref: /llvm-project/llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/constant64.mir (revision 6a857fe8b960cb26cf03a0c825250726589a7771)
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---
5name:            const_i64_INT_MIN
6legalized:       true
7regBankSelected: true
8tracksRegLiveness: true
9body:            |
10  bb.0:
11    liveins: $x10
12
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
23
24...
25---
26name:            const_i64_neg_9223372036854775000
27legalized:       true
28regBankSelected: true
29tracksRegLiveness: true
30body:            |
31  bb.0:
32    liveins: $x10
33
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
45
46...
47---
48name:            const_i64_INT_MAX
49legalized:       true
50regBankSelected: true
51tracksRegLiveness: true
52body:            |
53  bb.0:
54    liveins: $x10
55
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
66
67...
68---
69name:            const_i64_9223372036854775000
70legalized:       true
71regBankSelected: true
72tracksRegLiveness: true
73body:            |
74  bb.0:
75    liveins: $x10
76
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
87
88...
89---
90name:            const_i64_256
91legalized:       true
92regBankSelected: true
93tracksRegLiveness: true
94body:            |
95  bb.0:
96    liveins: $x10
97
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
107
108...
109---
110name:            const_i64_0
111legalized:       true
112regBankSelected: true
113tracksRegLiveness: true
114body:            |
115  bb.0:
116    liveins: $x10
117
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
127
128...
129---
130name:            const_i32_INT_MIN
131legalized:       true
132regBankSelected: true
133tracksRegLiveness: true
134body:            |
135  bb.0:
136    liveins: $x10
137
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(s64) = G_CONSTANT i64 -2147483648
145    $x10 = COPY %0(s64)
146    PseudoRET implicit $x10
147
148...
149---
150name:            const_i32_neg_2147483000
151legalized:       true
152regBankSelected: true
153tracksRegLiveness: true
154body:            |
155  bb.0:
156    liveins: $x10
157
158    ; CHECK-LABEL: name: const_i32_neg_2147483000
159    ; CHECK: liveins: $x10
160    ; CHECK-NEXT: {{  $}}
161    ; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 524288
162    ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LUI]], 648
163    ; CHECK-NEXT: $x10 = COPY [[ADDIW]]
164    ; CHECK-NEXT: PseudoRET implicit $x10
165    %0:gprb(s64) = G_CONSTANT i64 -2147483000
166    $x10 = COPY %0(s64)
167    PseudoRET implicit $x10
168
169...
170---
171name:            const_i32_INT_MAX
172legalized:       true
173regBankSelected: true
174tracksRegLiveness: true
175body:            |
176  bb.0:
177    liveins: $x10
178
179    ; CHECK-LABEL: name: const_i32_INT_MAX
180    ; CHECK: liveins: $x10
181    ; CHECK-NEXT: {{  $}}
182    ; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 524288
183    ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LUI]], -1
184    ; CHECK-NEXT: $x10 = COPY [[ADDIW]]
185    ; CHECK-NEXT: PseudoRET implicit $x10
186    %0:gprb(s64) = G_CONSTANT i64 2147483647
187    $x10 = COPY %0(s64)
188    PseudoRET implicit $x10
189
190...
191---
192name:            const_i32_2147483000
193legalized:       true
194regBankSelected: true
195tracksRegLiveness: true
196body:            |
197  bb.0:
198    liveins: $x10
199
200    ; CHECK-LABEL: name: const_i32_2147483000
201    ; CHECK: liveins: $x10
202    ; CHECK-NEXT: {{  $}}
203    ; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 524288
204    ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LUI]], -648
205    ; CHECK-NEXT: $x10 = COPY [[ADDIW]]
206    ; CHECK-NEXT: PseudoRET implicit $x10
207    %0:gprb(s64) = G_CONSTANT i64 2147483000
208    $x10 = COPY %0(s64)
209    PseudoRET implicit $x10
210
211...
212