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