1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple aarch64 -O0 -run-pass=aarch64-prelegalizer-combiner -global-isel -verify-machineinstrs %s -o - | FileCheck %s 3--- 4name: test_anyext 5body: | 6 bb.0: 7 liveins: $x0 8 ; CHECK-LABEL: name: test_anyext 9 ; CHECK: liveins: $x0 10 ; CHECK-NEXT: {{ $}} 11 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 12 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8)) 13 ; CHECK-NEXT: $w0 = COPY [[LOAD]](s32) 14 %0:_(p0) = COPY $x0 15 %1:_(s8) = G_LOAD %0 :: (load (s8)) 16 %2:_(s32) = G_ANYEXT %1 17 $w0 = COPY %2 18... 19 20--- 21name: test_anyext_with_copy 22body: | 23 bb.0: 24 liveins: $x0 25 ; CHECK-LABEL: name: test_anyext_with_copy 26 ; CHECK: liveins: $x0 27 ; CHECK-NEXT: {{ $}} 28 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 29 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8)) 30 ; CHECK-NEXT: $w0 = COPY [[LOAD]](s32) 31 %0:_(p0) = COPY $x0 32 %1:_(s8) = G_LOAD %0 :: (load (s8)) 33 %2:_(s8) = COPY %1 34 %3:_(s32) = G_ANYEXT %1 35 $w0 = COPY %3 36... 37 38--- 39name: test_signext 40body: | 41 bb.0: 42 liveins: $x0 43 ; CHECK-LABEL: name: test_signext 44 ; CHECK: liveins: $x0 45 ; CHECK-NEXT: {{ $}} 46 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 47 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 48 ; CHECK-NEXT: $w0 = COPY [[SEXTLOAD]](s32) 49 %0:_(p0) = COPY $x0 50 %1:_(s8) = G_LOAD %0 :: (load (s8)) 51 %2:_(s32) = G_SEXT %1 52 $w0 = COPY %2 53... 54 55--- 56name: test_zeroext 57body: | 58 bb.0: 59 liveins: $x0 60 ; CHECK-LABEL: name: test_zeroext 61 ; CHECK: liveins: $x0 62 ; CHECK-NEXT: {{ $}} 63 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 64 ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8)) 65 ; CHECK-NEXT: $w0 = COPY [[ZEXTLOAD]](s32) 66 %0:_(p0) = COPY $x0 67 %1:_(s8) = G_LOAD %0 :: (load (s8)) 68 %2:_(s32) = G_ZEXT %1 69 $w0 = COPY %2 70... 71 72--- 73name: test_2anyext 74body: | 75 bb.0: 76 liveins: $x0 77 ; CHECK-LABEL: name: test_2anyext 78 ; CHECK: liveins: $x0 79 ; CHECK-NEXT: {{ $}} 80 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 81 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8)) 82 ; CHECK-NEXT: $w0 = COPY [[LOAD]](s32) 83 ; CHECK-NEXT: $w1 = COPY [[LOAD]](s32) 84 %0:_(p0) = COPY $x0 85 %1:_(s8) = G_LOAD %0 :: (load (s8)) 86 %2:_(s32) = G_ANYEXT %1 87 %3:_(s32) = G_ANYEXT %1 88 $w0 = COPY %2 89 $w1 = COPY %3 90... 91 92--- 93name: test_1anyext_1signext 94body: | 95 bb.0: 96 liveins: $x0 97 ; CHECK-LABEL: name: test_1anyext_1signext 98 ; CHECK: liveins: $x0 99 ; CHECK-NEXT: {{ $}} 100 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 101 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 102 ; CHECK-NEXT: $w0 = COPY [[SEXTLOAD]](s32) 103 ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32) 104 %0:_(p0) = COPY $x0 105 %1:_(s8) = G_LOAD %0 :: (load (s8)) 106 %2:_(s32) = G_ANYEXT %1 107 %3:_(s32) = G_SEXT %1 108 $w0 = COPY %2 109 $w1 = COPY %3 110... 111 112--- 113name: test_1xor_1signext 114body: | 115 bb.0: 116 liveins: $x0 117 ; CHECK-LABEL: name: test_1xor_1signext 118 ; CHECK: liveins: $x0 119 ; CHECK-NEXT: {{ $}} 120 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 121 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 122 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s32) 123 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 -1 124 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s8) = G_XOR [[TRUNC]], [[C]] 125 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[XOR]](s8) 126 ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32) 127 ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32) 128 %0:_(p0) = COPY $x0 129 %1:_(s8) = G_LOAD %0 :: (load (s8)) 130 %2:_(s8) = G_CONSTANT i8 -1 131 %3:_(s8) = G_XOR %1, %2 132 %5:_(s32) = G_ANYEXT %3 133 %6:_(s32) = G_SEXT %1 134 $w0 = COPY %5 135 $w1 = COPY %6 136... 137 138--- 139name: test_1anyext_1zeroext 140body: | 141 bb.0: 142 liveins: $x0 143 ; CHECK-LABEL: name: test_1anyext_1zeroext 144 ; CHECK: liveins: $x0 145 ; CHECK-NEXT: {{ $}} 146 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 147 ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8)) 148 ; CHECK-NEXT: $w0 = COPY [[ZEXTLOAD]](s32) 149 ; CHECK-NEXT: $w1 = COPY [[ZEXTLOAD]](s32) 150 %0:_(p0) = COPY $x0 151 %1:_(s8) = G_LOAD %0 :: (load (s8)) 152 %2:_(s32) = G_ANYEXT %1 153 %3:_(s32) = G_ZEXT %1 154 $w0 = COPY %2 155 $w1 = COPY %3 156... 157 158--- 159name: test_1signext_1zeroext 160body: | 161 bb.0: 162 liveins: $x0 163 ; CHECK-LABEL: name: test_1signext_1zeroext 164 ; CHECK: liveins: $x0 165 ; CHECK-NEXT: {{ $}} 166 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 167 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 168 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s32) 169 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s8) 170 ; CHECK-NEXT: $w0 = COPY [[ZEXT]](s32) 171 ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32) 172 %0:_(p0) = COPY $x0 173 %1:_(s8) = G_LOAD %0 :: (load (s8)) 174 %2:_(s32) = G_ZEXT %1 175 %3:_(s32) = G_SEXT %1 176 $w0 = COPY %2 177 $w1 = COPY %3 178... 179 180--- 181name: test_1anyext64_1signext32 182body: | 183 bb.0: 184 liveins: $x0 185 ; CHECK-LABEL: name: test_1anyext64_1signext32 186 ; CHECK: liveins: $x0 187 ; CHECK-NEXT: {{ $}} 188 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 189 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 190 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SEXTLOAD]](s32) 191 ; CHECK-NEXT: $x0 = COPY [[ANYEXT]](s64) 192 ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32) 193 %0:_(p0) = COPY $x0 194 %1:_(s8) = G_LOAD %0 :: (load (s8)) 195 %2:_(s64) = G_ANYEXT %1 196 %3:_(s32) = G_SEXT %1 197 $x0 = COPY %2 198 $w1 = COPY %3 199... 200 201--- 202name: test_1anyext32_1signext64 203body: | 204 bb.0: 205 liveins: $x0 206 ; CHECK-LABEL: name: test_1anyext32_1signext64 207 ; CHECK: liveins: $x0 208 ; CHECK-NEXT: {{ $}} 209 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 210 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 211 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64) 212 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8) 213 ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32) 214 ; CHECK-NEXT: $x1 = COPY [[SEXTLOAD]](s64) 215 %0:_(p0) = COPY $x0 216 %1:_(s8) = G_LOAD %0 :: (load (s8)) 217 %2:_(s32) = G_ANYEXT %1 218 %3:_(s64) = G_SEXT %1 219 $w0 = COPY %2 220 $x1 = COPY %3 221... 222 223--- 224name: test_2anyext32_1signext64 225body: | 226 bb.0: 227 liveins: $x0 228 ; CHECK-LABEL: name: test_2anyext32_1signext64 229 ; CHECK: liveins: $x0 230 ; CHECK-NEXT: {{ $}} 231 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 232 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 233 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64) 234 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8) 235 ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8) 236 ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32) 237 ; CHECK-NEXT: $x1 = COPY [[SEXTLOAD]](s64) 238 ; CHECK-NEXT: $w2 = COPY [[ANYEXT1]](s32) 239 %0:_(p0) = COPY $x0 240 %1:_(s8) = G_LOAD %0 :: (load (s8)) 241 %2:_(s32) = G_ANYEXT %1 242 %3:_(s64) = G_SEXT %1 243 %4:_(s32) = G_ANYEXT %1 244 $w0 = COPY %2 245 $x1 = COPY %3 246 $w2 = COPY %4 247... 248 249--- 250name: test_multiblock_anyext 251body: | 252 ; CHECK-LABEL: name: test_multiblock_anyext 253 ; CHECK: bb.0: 254 ; CHECK-NEXT: successors: %bb.1(0x80000000) 255 ; CHECK-NEXT: liveins: $x0 256 ; CHECK-NEXT: {{ $}} 257 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 258 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8)) 259 ; CHECK-NEXT: G_BR %bb.1 260 ; CHECK-NEXT: {{ $}} 261 ; CHECK-NEXT: bb.1: 262 ; CHECK-NEXT: $w0 = COPY [[LOAD]](s32) 263 bb.0: 264 liveins: $x0 265 %0:_(p0) = COPY $x0 266 %1:_(s8) = G_LOAD %0 :: (load (s8)) 267 G_BR %bb.1 268 bb.1: 269 %2:_(s32) = G_ANYEXT %1 270 $w0 = COPY %2 271... 272 273--- 274name: test_multiblock_signext 275body: | 276 ; CHECK-LABEL: name: test_multiblock_signext 277 ; CHECK: bb.0: 278 ; CHECK-NEXT: successors: %bb.1(0x80000000) 279 ; CHECK-NEXT: liveins: $x0 280 ; CHECK-NEXT: {{ $}} 281 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 282 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 283 ; CHECK-NEXT: G_BR %bb.1 284 ; CHECK-NEXT: {{ $}} 285 ; CHECK-NEXT: bb.1: 286 ; CHECK-NEXT: $w0 = COPY [[SEXTLOAD]](s32) 287 bb.0: 288 liveins: $x0 289 %0:_(p0) = COPY $x0 290 %1:_(s8) = G_LOAD %0 :: (load (s8)) 291 G_BR %bb.1 292 bb.1: 293 %2:_(s32) = G_SEXT %1 294 $w0 = COPY %2 295... 296 297--- 298name: test_multiblock_zeroext 299body: | 300 ; CHECK-LABEL: name: test_multiblock_zeroext 301 ; CHECK: bb.0: 302 ; CHECK-NEXT: successors: %bb.1(0x80000000) 303 ; CHECK-NEXT: liveins: $x0 304 ; CHECK-NEXT: {{ $}} 305 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 306 ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8)) 307 ; CHECK-NEXT: G_BR %bb.1 308 ; CHECK-NEXT: {{ $}} 309 ; CHECK-NEXT: bb.1: 310 ; CHECK-NEXT: $w0 = COPY [[ZEXTLOAD]](s32) 311 bb.0: 312 liveins: $x0 313 %0:_(p0) = COPY $x0 314 %1:_(s8) = G_LOAD %0 :: (load (s8)) 315 G_BR %bb.1 316 bb.1: 317 %2:_(s32) = G_ZEXT %1 318 $w0 = COPY %2 319... 320 321--- 322name: test_multiblock_2anyext 323body: | 324 ; CHECK-LABEL: name: test_multiblock_2anyext 325 ; CHECK: bb.0: 326 ; CHECK-NEXT: successors: %bb.1(0x80000000) 327 ; CHECK-NEXT: liveins: $x0 328 ; CHECK-NEXT: {{ $}} 329 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 330 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8)) 331 ; CHECK-NEXT: G_BR %bb.1 332 ; CHECK-NEXT: {{ $}} 333 ; CHECK-NEXT: bb.1: 334 ; CHECK-NEXT: $w0 = COPY [[LOAD]](s32) 335 ; CHECK-NEXT: $w1 = COPY [[LOAD]](s32) 336 bb.0: 337 liveins: $x0 338 %0:_(p0) = COPY $x0 339 %1:_(s8) = G_LOAD %0 :: (load (s8)) 340 %2:_(s32) = G_ANYEXT %1 341 G_BR %bb.1 342 bb.1: 343 %3:_(s32) = G_ANYEXT %1 344 $w0 = COPY %2 345 $w1 = COPY %3 346... 347 348--- 349name: test_multiblock_1anyext64_1signext32 350body: | 351 ; CHECK-LABEL: name: test_multiblock_1anyext64_1signext32 352 ; CHECK: bb.0: 353 ; CHECK-NEXT: successors: %bb.1(0x80000000) 354 ; CHECK-NEXT: liveins: $x0 355 ; CHECK-NEXT: {{ $}} 356 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 357 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 358 ; CHECK-NEXT: G_BR %bb.1 359 ; CHECK-NEXT: {{ $}} 360 ; CHECK-NEXT: bb.1: 361 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SEXTLOAD]](s32) 362 ; CHECK-NEXT: $x0 = COPY [[ANYEXT]](s64) 363 ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32) 364 bb.0: 365 liveins: $x0 366 %0:_(p0) = COPY $x0 367 %1:_(s8) = G_LOAD %0 :: (load (s8)) 368 G_BR %bb.1 369 bb.1: 370 %2:_(s64) = G_ANYEXT %1 371 %3:_(s32) = G_SEXT %1 372 $x0 = COPY %2 373 $w1 = COPY %3 374... 375 376--- 377name: test_multiblock_1anyext32_1signext64 378body: | 379 ; CHECK-LABEL: name: test_multiblock_1anyext32_1signext64 380 ; CHECK: bb.0: 381 ; CHECK-NEXT: successors: %bb.1(0x80000000) 382 ; CHECK-NEXT: liveins: $x0 383 ; CHECK-NEXT: {{ $}} 384 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 385 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 386 ; CHECK-NEXT: G_BR %bb.1 387 ; CHECK-NEXT: {{ $}} 388 ; CHECK-NEXT: bb.1: 389 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64) 390 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8) 391 ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32) 392 ; CHECK-NEXT: $x1 = COPY [[SEXTLOAD]](s64) 393 bb.0: 394 liveins: $x0 395 %0:_(p0) = COPY $x0 396 %1:_(s8) = G_LOAD %0 :: (load (s8)) 397 G_BR %bb.1 398 bb.1: 399 %2:_(s32) = G_ANYEXT %1 400 %3:_(s64) = G_SEXT %1 401 $w0 = COPY %2 402 $x1 = COPY %3 403... 404 405--- 406name: test_multiblock_2anyext32_1signext64 407body: | 408 ; CHECK-LABEL: name: test_multiblock_2anyext32_1signext64 409 ; CHECK: bb.0: 410 ; CHECK-NEXT: successors: %bb.1(0x80000000) 411 ; CHECK-NEXT: liveins: $x0 412 ; CHECK-NEXT: {{ $}} 413 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 414 ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8)) 415 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64) 416 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8) 417 ; CHECK-NEXT: G_BR %bb.1 418 ; CHECK-NEXT: {{ $}} 419 ; CHECK-NEXT: bb.1: 420 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64) 421 ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC1]](s8) 422 ; CHECK-NEXT: $w0 = COPY [[ANYEXT1]](s32) 423 ; CHECK-NEXT: $x1 = COPY [[SEXTLOAD]](s64) 424 ; CHECK-NEXT: $w2 = COPY [[ANYEXT]](s32) 425 bb.0: 426 liveins: $x0 427 %0:_(p0) = COPY $x0 428 %1:_(s8) = G_LOAD %0 :: (load (s8)) 429 %4:_(s32) = G_ANYEXT %1 430 G_BR %bb.1 431 bb.1: 432 %2:_(s32) = G_ANYEXT %1 433 %3:_(s64) = G_SEXT %1 434 $w0 = COPY %2 435 $x1 = COPY %3 436 $w2 = COPY %4 437... 438--- 439name: test_atomic 440alignment: 4 441tracksRegLiveness: true 442liveins: 443 - { reg: '$x0' } 444body: | 445 bb.1: 446 liveins: $x0 447 448 ; CHECK-LABEL: name: test_atomic 449 ; CHECK: liveins: $x0 450 ; CHECK-NEXT: {{ $}} 451 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 452 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load unordered (s16)) 453 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD]](s16) 454 ; CHECK-NEXT: $w0 = COPY [[ZEXT]](s32) 455 ; CHECK-NEXT: RET_ReallyLR implicit $w0 456 %0:_(p0) = COPY $x0 457 %1:_(s16) = G_LOAD %0(p0) :: (load unordered (s16)) 458 %2:_(s32) = G_ZEXT %1(s16) 459 $w0 = COPY %2(s32) 460 RET_ReallyLR implicit $w0 461... 462--- 463name: test_dont_zextload_to_sextload 464body: | 465 bb.0: 466 liveins: $x0 467 ; CHECK-LABEL: name: test_dont_zextload_to_sextload 468 ; CHECK: liveins: $x0 469 ; CHECK-NEXT: {{ $}} 470 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0 471 ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s64) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8)) 472 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ZEXTLOAD]](s64) 473 ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[TRUNC]](s32) 474 ; CHECK-NEXT: $x0 = COPY [[ZEXTLOAD]](s64) 475 ; CHECK-NEXT: $x1 = COPY [[SEXT]](s64) 476 %0:_(p0) = COPY $x0 477 %1:_(s32) = G_ZEXTLOAD %0 :: (load (s8)) 478 %2:_(s64) = G_ZEXT %1 479 %3:_(s64) = G_SEXT %1 480 $x0 = COPY %2 481 $x1 = COPY %3 482... 483