705 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=i386-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=X323# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=X644--- |5 6 define i8 @test_zext_i1toi8(i1 %a) {7 %r = zext i1 %a to i88 ret i8 %r9 }10 11 define i16 @test_zext_i1toi16(i1 %a) {12 %r = zext i1 %a to i1613 ret i16 %r14 }15 16 define i32 @test_zext_i1(i8 %a) {17 %val = trunc i8 %a to i118 %r = zext i1 %val to i3219 ret i32 %r20 }21 22 define i16 @test_zext_i8toi16(i8 %val) {23 %r = zext i8 %val to i1624 ret i16 %r25 }26 27 define i32 @test_zext_i8(i8 %val) {28 %r = zext i8 %val to i3229 ret i32 %r30 }31 32 define i32 @test_zext_i16(i16 %val) {33 %r = zext i16 %val to i3234 ret i32 %r35 }36 37 define i8 @test_sext_i1toi8(i1 %a) {38 %r = sext i1 %a to i839 ret i8 %r40 }41 42 define i16 @test_sext_i1toi16(i1 %a) {43 %r = sext i1 %a to i1644 ret i16 %r45 }46 47 define i32 @test_sext_i1(i8 %a) {48 %val = trunc i8 %a to i149 %r = sext i1 %val to i3250 ret i32 %r51 }52 53 define i16 @test_sext_i8toi16(i8 %val) {54 %r = sext i8 %val to i1655 ret i16 %r56 }57 58 define i32 @test_sext_i8(i8 %val) {59 %r = sext i8 %val to i3260 ret i32 %r61 }62 63 define i32 @test_sext_i16(i16 %val) {64 %r = sext i16 %val to i3265 ret i32 %r66 }67 68 define void @test_anyext_i1toi8(i1 %a) {69 ret void70 }71 72 define void @test_anyext_i1toi16(i1 %a) {73 ret void74 }75 76 define void @test_anyext_i1(i8 %a) {77 ret void78 }79 80 define void @test_anyext_i8toi16(i8 %val) {81 ret void82 }83 84 define void @test_anyext_i8(i8 %val) {85 ret void86 }87 88 define void @test_anyext_i16(i16 %val) {89 ret void90 }91 92...93---94name: test_zext_i1toi895alignment: 1696legalized: false97regBankSelected: false98registers:99 - { id: 0, class: _, preferred-register: '' }100 - { id: 1, class: _, preferred-register: '' }101 - { id: 2, class: _, preferred-register: '' }102body: |103 bb.1 (%ir-block.0):104 liveins: $edi105 106 ; X32-LABEL: name: test_zext_i1toi8107 ; X32: liveins: $edi108 ; X32-NEXT: {{ $}}109 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi110 ; X32-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)111 ; X32-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 1112 ; X32-NEXT: [[AND:%[0-9]+]]:_(s8) = G_AND [[TRUNC]], [[C]]113 ; X32-NEXT: $al = COPY [[AND]](s8)114 ; X32-NEXT: RET 0, implicit $al115 ;116 ; X64-LABEL: name: test_zext_i1toi8117 ; X64: liveins: $edi118 ; X64-NEXT: {{ $}}119 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi120 ; X64-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)121 ; X64-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 1122 ; X64-NEXT: [[AND:%[0-9]+]]:_(s8) = G_AND [[TRUNC]], [[C]]123 ; X64-NEXT: $al = COPY [[AND]](s8)124 ; X64-NEXT: RET 0, implicit $al125 %1:_(s32) = COPY $edi126 %0:_(s1) = G_TRUNC %1(s32)127 %2:_(s8) = G_ZEXT %0(s1)128 $al = COPY %2(s8)129 RET 0, implicit $al130 131...132---133name: test_zext_i1toi16134alignment: 16135legalized: false136regBankSelected: false137registers:138 - { id: 0, class: _, preferred-register: '' }139 - { id: 1, class: _, preferred-register: '' }140body: |141 bb.1 (%ir-block.0):142 liveins: $edi143 144 ; X32-LABEL: name: test_zext_i1toi16145 ; X32: liveins: $edi146 ; X32-NEXT: {{ $}}147 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi148 ; X32-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)149 ; X32-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 1150 ; X32-NEXT: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C]]151 ; X32-NEXT: $ax = COPY [[AND]](s16)152 ; X32-NEXT: RET 0, implicit $ax153 ;154 ; X64-LABEL: name: test_zext_i1toi16155 ; X64: liveins: $edi156 ; X64-NEXT: {{ $}}157 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi158 ; X64-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)159 ; X64-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 1160 ; X64-NEXT: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C]]161 ; X64-NEXT: $ax = COPY [[AND]](s16)162 ; X64-NEXT: RET 0, implicit $ax163 %1:_(s32) = COPY $edi164 %0:_(s1) = G_TRUNC %1(s32)165 %2:_(s16) = G_ZEXT %0(s1)166 $ax = COPY %2(s16)167 RET 0, implicit $ax168 169...170---171name: test_zext_i1172alignment: 16173legalized: false174regBankSelected: false175registers:176 - { id: 0, class: _ }177 - { id: 1, class: _ }178 - { id: 2, class: _ }179body: |180 bb.1 (%ir-block.0):181 liveins: $edi182 183 ; X32-LABEL: name: test_zext_i1184 ; X32: liveins: $edi185 ; X32-NEXT: {{ $}}186 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil187 ; X32-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)188 ; X32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1189 ; X32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ANYEXT]], [[C]]190 ; X32-NEXT: $eax = COPY [[AND]](s32)191 ; X32-NEXT: RET 0, implicit $eax192 ;193 ; X64-LABEL: name: test_zext_i1194 ; X64: liveins: $edi195 ; X64-NEXT: {{ $}}196 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil197 ; X64-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)198 ; X64-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1199 ; X64-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ANYEXT]], [[C]]200 ; X64-NEXT: $eax = COPY [[AND]](s32)201 ; X64-NEXT: RET 0, implicit $eax202 %0(s8) = COPY $dil203 %1(s1) = G_TRUNC %0(s8)204 %2(s32) = G_ZEXT %1(s1)205 $eax = COPY %2(s32)206 RET 0, implicit $eax207 208...209---210name: test_zext_i8toi16211alignment: 16212legalized: false213regBankSelected: false214registers:215 - { id: 0, class: _, preferred-register: '' }216 - { id: 1, class: _, preferred-register: '' }217body: |218 bb.1 (%ir-block.0):219 liveins: $edi220 221 ; X32-LABEL: name: test_zext_i8toi16222 ; X32: liveins: $edi223 ; X32-NEXT: {{ $}}224 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil225 ; X32-NEXT: [[ZEXT:%[0-9]+]]:_(s16) = G_ZEXT [[COPY]](s8)226 ; X32-NEXT: $ax = COPY [[ZEXT]](s16)227 ; X32-NEXT: RET 0, implicit $ax228 ;229 ; X64-LABEL: name: test_zext_i8toi16230 ; X64: liveins: $edi231 ; X64-NEXT: {{ $}}232 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil233 ; X64-NEXT: [[ZEXT:%[0-9]+]]:_(s16) = G_ZEXT [[COPY]](s8)234 ; X64-NEXT: $ax = COPY [[ZEXT]](s16)235 ; X64-NEXT: RET 0, implicit $ax236 %0(s8) = COPY $dil237 %1(s16) = G_ZEXT %0(s8)238 $ax = COPY %1(s16)239 RET 0, implicit $ax240 241...242---243name: test_zext_i8244alignment: 16245legalized: false246regBankSelected: false247registers:248 - { id: 0, class: _ }249 - { id: 1, class: _ }250body: |251 bb.1 (%ir-block.0):252 liveins: $edi253 254 ; X32-LABEL: name: test_zext_i8255 ; X32: liveins: $edi256 ; X32-NEXT: {{ $}}257 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil258 ; X32-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s8)259 ; X32-NEXT: $eax = COPY [[ZEXT]](s32)260 ; X32-NEXT: RET 0, implicit $eax261 ;262 ; X64-LABEL: name: test_zext_i8263 ; X64: liveins: $edi264 ; X64-NEXT: {{ $}}265 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil266 ; X64-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s8)267 ; X64-NEXT: $eax = COPY [[ZEXT]](s32)268 ; X64-NEXT: RET 0, implicit $eax269 %0(s8) = COPY $dil270 %1(s32) = G_ZEXT %0(s8)271 $eax = COPY %1(s32)272 RET 0, implicit $eax273 274...275---276name: test_zext_i16277alignment: 16278legalized: false279regBankSelected: false280registers:281 - { id: 0, class: _ }282 - { id: 1, class: _ }283body: |284 bb.1 (%ir-block.0):285 liveins: $edi286 287 ; X32-LABEL: name: test_zext_i16288 ; X32: liveins: $edi289 ; X32-NEXT: {{ $}}290 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di291 ; X32-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s16)292 ; X32-NEXT: $eax = COPY [[ZEXT]](s32)293 ; X32-NEXT: RET 0, implicit $eax294 ;295 ; X64-LABEL: name: test_zext_i16296 ; X64: liveins: $edi297 ; X64-NEXT: {{ $}}298 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di299 ; X64-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s16)300 ; X64-NEXT: $eax = COPY [[ZEXT]](s32)301 ; X64-NEXT: RET 0, implicit $eax302 %0(s16) = COPY $di303 %1(s32) = G_ZEXT %0(s16)304 $eax = COPY %1(s32)305 RET 0, implicit $eax306 307...308---309name: test_sext_i1toi8310alignment: 16311legalized: false312regBankSelected: false313registers:314 - { id: 0, class: _, preferred-register: '' }315 - { id: 1, class: _, preferred-register: '' }316body: |317 bb.1 (%ir-block.0):318 liveins: $edi319 320 ; X32-LABEL: name: test_sext_i1toi8321 ; X32: liveins: $edi322 ; X32-NEXT: {{ $}}323 ; X32-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 0324 ; X32-NEXT: $al = COPY [[C]](s8)325 ; X32-NEXT: RET 0, implicit $al326 ;327 ; X64-LABEL: name: test_sext_i1toi8328 ; X64: liveins: $edi329 ; X64-NEXT: {{ $}}330 ; X64-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 0331 ; X64-NEXT: $al = COPY [[C]](s8)332 ; X64-NEXT: RET 0, implicit $al333 %0(s1) = G_IMPLICIT_DEF334 %1(s8) = G_SEXT %0(s1)335 $al = COPY %1(s8)336 RET 0, implicit $al337 338...339---340name: test_sext_i1toi16341alignment: 16342legalized: false343regBankSelected: false344registers:345 - { id: 0, class: _, preferred-register: '' }346 - { id: 1, class: _, preferred-register: '' }347body: |348 bb.1 (%ir-block.0):349 liveins: $edi350 351 ; X32-LABEL: name: test_sext_i1toi16352 ; X32: liveins: $edi353 ; X32-NEXT: {{ $}}354 ; X32-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 0355 ; X32-NEXT: $ax = COPY [[C]](s16)356 ; X32-NEXT: RET 0, implicit $ax357 ;358 ; X64-LABEL: name: test_sext_i1toi16359 ; X64: liveins: $edi360 ; X64-NEXT: {{ $}}361 ; X64-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 0362 ; X64-NEXT: $ax = COPY [[C]](s16)363 ; X64-NEXT: RET 0, implicit $ax364 %0(s1) = G_IMPLICIT_DEF365 %1(s16) = G_SEXT %0(s1)366 $ax = COPY %1(s16)367 RET 0, implicit $ax368 369...370---371name: test_sext_i1372alignment: 16373legalized: false374regBankSelected: false375registers:376 - { id: 0, class: _ }377 - { id: 1, class: _ }378 - { id: 2, class: _ }379body: |380 bb.1 (%ir-block.0):381 liveins: $edi382 383 ; X32-LABEL: name: test_sext_i1384 ; X32: liveins: $edi385 ; X32-NEXT: {{ $}}386 ; X32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0387 ; X32-NEXT: $eax = COPY [[C]](s32)388 ; X32-NEXT: RET 0, implicit $eax389 ;390 ; X64-LABEL: name: test_sext_i1391 ; X64: liveins: $edi392 ; X64-NEXT: {{ $}}393 ; X64-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0394 ; X64-NEXT: $eax = COPY [[C]](s32)395 ; X64-NEXT: RET 0, implicit $eax396 %0(s1) = G_IMPLICIT_DEF397 %2(s32) = G_SEXT %0(s1)398 $eax = COPY %2(s32)399 RET 0, implicit $eax400 401...402---403name: test_sext_i8toi16404alignment: 16405legalized: false406regBankSelected: false407registers:408 - { id: 0, class: _, preferred-register: '' }409 - { id: 1, class: _, preferred-register: '' }410body: |411 bb.1 (%ir-block.0):412 liveins: $edi413 414 ; X32-LABEL: name: test_sext_i8toi16415 ; X32: liveins: $edi416 ; X32-NEXT: {{ $}}417 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil418 ; X32-NEXT: [[SEXT:%[0-9]+]]:_(s16) = G_SEXT [[COPY]](s8)419 ; X32-NEXT: $ax = COPY [[SEXT]](s16)420 ; X32-NEXT: RET 0, implicit $ax421 ;422 ; X64-LABEL: name: test_sext_i8toi16423 ; X64: liveins: $edi424 ; X64-NEXT: {{ $}}425 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil426 ; X64-NEXT: [[SEXT:%[0-9]+]]:_(s16) = G_SEXT [[COPY]](s8)427 ; X64-NEXT: $ax = COPY [[SEXT]](s16)428 ; X64-NEXT: RET 0, implicit $ax429 %0(s8) = COPY $dil430 %1(s16) = G_SEXT %0(s8)431 $ax = COPY %1(s16)432 RET 0, implicit $ax433 434...435---436name: test_sext_i8437alignment: 16438legalized: false439regBankSelected: false440registers:441 - { id: 0, class: _ }442 - { id: 1, class: _ }443body: |444 bb.1 (%ir-block.0):445 liveins: $edi446 447 ; X32-LABEL: name: test_sext_i8448 ; X32: liveins: $edi449 ; X32-NEXT: {{ $}}450 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil451 ; X32-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s8)452 ; X32-NEXT: $eax = COPY [[SEXT]](s32)453 ; X32-NEXT: RET 0, implicit $eax454 ;455 ; X64-LABEL: name: test_sext_i8456 ; X64: liveins: $edi457 ; X64-NEXT: {{ $}}458 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil459 ; X64-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s8)460 ; X64-NEXT: $eax = COPY [[SEXT]](s32)461 ; X64-NEXT: RET 0, implicit $eax462 %0(s8) = COPY $dil463 %1(s32) = G_SEXT %0(s8)464 $eax = COPY %1(s32)465 RET 0, implicit $eax466 467...468---469name: test_sext_i16470alignment: 16471legalized: false472regBankSelected: false473registers:474 - { id: 0, class: _ }475 - { id: 1, class: _ }476body: |477 bb.1 (%ir-block.0):478 liveins: $edi479 480 ; X32-LABEL: name: test_sext_i16481 ; X32: liveins: $edi482 ; X32-NEXT: {{ $}}483 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di484 ; X32-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s16)485 ; X32-NEXT: $eax = COPY [[SEXT]](s32)486 ; X32-NEXT: RET 0, implicit $eax487 ;488 ; X64-LABEL: name: test_sext_i16489 ; X64: liveins: $edi490 ; X64-NEXT: {{ $}}491 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di492 ; X64-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s16)493 ; X64-NEXT: $eax = COPY [[SEXT]](s32)494 ; X64-NEXT: RET 0, implicit $eax495 %0(s16) = COPY $di496 %1(s32) = G_SEXT %0(s16)497 $eax = COPY %1(s32)498 RET 0, implicit $eax499 500...501---502name: test_anyext_i1toi8503alignment: 16504legalized: false505regBankSelected: false506registers:507 - { id: 0, class: _, preferred-register: '' }508 - { id: 1, class: _, preferred-register: '' }509 - { id: 2, class: _, preferred-register: '' }510body: |511 bb.1 (%ir-block.0):512 liveins: $edi513 514 ; X32-LABEL: name: test_anyext_i1toi8515 ; X32: liveins: $edi516 ; X32-NEXT: {{ $}}517 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi518 ; X32-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)519 ; X32-NEXT: $al = COPY [[TRUNC]](s8)520 ; X32-NEXT: RET 0, implicit $al521 ;522 ; X64-LABEL: name: test_anyext_i1toi8523 ; X64: liveins: $edi524 ; X64-NEXT: {{ $}}525 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi526 ; X64-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)527 ; X64-NEXT: $al = COPY [[TRUNC]](s8)528 ; X64-NEXT: RET 0, implicit $al529 %0(s32) = COPY $edi530 %1(s1) = G_TRUNC %0(s32)531 %2(s8) = G_ANYEXT %1(s1)532 $al = COPY %2(s8)533 RET 0, implicit $al534 535...536---537name: test_anyext_i1toi16538alignment: 16539legalized: false540regBankSelected: false541registers:542 - { id: 0, class: _, preferred-register: '' }543 - { id: 1, class: _, preferred-register: '' }544 - { id: 2, class: _, preferred-register: '' }545body: |546 bb.1 (%ir-block.0):547 liveins: $edi548 549 ; X32-LABEL: name: test_anyext_i1toi16550 ; X32: liveins: $edi551 ; X32-NEXT: {{ $}}552 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi553 ; X32-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)554 ; X32-NEXT: $ax = COPY [[TRUNC]](s16)555 ; X32-NEXT: RET 0, implicit $ax556 ;557 ; X64-LABEL: name: test_anyext_i1toi16558 ; X64: liveins: $edi559 ; X64-NEXT: {{ $}}560 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi561 ; X64-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)562 ; X64-NEXT: $ax = COPY [[TRUNC]](s16)563 ; X64-NEXT: RET 0, implicit $ax564 %0(s32) = COPY $edi565 %1(s1) = G_TRUNC %0(s32)566 %2(s16) = G_ANYEXT %1(s1)567 $ax = COPY %2(s16)568 RET 0, implicit $ax569 570...571---572name: test_anyext_i1573alignment: 16574legalized: false575regBankSelected: false576registers:577 - { id: 0, class: _ }578 - { id: 1, class: _ }579 - { id: 2, class: _ }580body: |581 bb.1 (%ir-block.0):582 liveins: $edi583 584 ; X32-LABEL: name: test_anyext_i1585 ; X32: liveins: $edi586 ; X32-NEXT: {{ $}}587 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil588 ; X32-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)589 ; X32-NEXT: $eax = COPY [[ANYEXT]](s32)590 ; X32-NEXT: RET 0, implicit $eax591 ;592 ; X64-LABEL: name: test_anyext_i1593 ; X64: liveins: $edi594 ; X64-NEXT: {{ $}}595 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil596 ; X64-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)597 ; X64-NEXT: $eax = COPY [[ANYEXT]](s32)598 ; X64-NEXT: RET 0, implicit $eax599 %0(s8) = COPY $dil600 %1(s1) = G_TRUNC %0(s8)601 %2(s32) = G_ANYEXT %1(s1)602 $eax = COPY %2(s32)603 RET 0, implicit $eax604 605...606---607name: test_anyext_i8toi16608alignment: 16609legalized: false610regBankSelected: false611registers:612 - { id: 0, class: _, preferred-register: '' }613 - { id: 1, class: _, preferred-register: '' }614body: |615 bb.1 (%ir-block.0):616 liveins: $edi617 618 ; X32-LABEL: name: test_anyext_i8toi16619 ; X32: liveins: $edi620 ; X32-NEXT: {{ $}}621 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil622 ; X32-NEXT: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY]](s8)623 ; X32-NEXT: $ax = COPY [[ANYEXT]](s16)624 ; X32-NEXT: RET 0, implicit $ax625 ;626 ; X64-LABEL: name: test_anyext_i8toi16627 ; X64: liveins: $edi628 ; X64-NEXT: {{ $}}629 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil630 ; X64-NEXT: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY]](s8)631 ; X64-NEXT: $ax = COPY [[ANYEXT]](s16)632 ; X64-NEXT: RET 0, implicit $ax633 %0(s8) = COPY $dil634 %1(s16) = G_ANYEXT %0(s8)635 $ax = COPY %1(s16)636 RET 0, implicit $ax637 638...639---640name: test_anyext_i8641alignment: 16642legalized: false643regBankSelected: false644registers:645 - { id: 0, class: _ }646 - { id: 1, class: _ }647body: |648 bb.1 (%ir-block.0):649 liveins: $edi650 651 ; X32-LABEL: name: test_anyext_i8652 ; X32: liveins: $edi653 ; X32-NEXT: {{ $}}654 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil655 ; X32-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)656 ; X32-NEXT: $eax = COPY [[ANYEXT]](s32)657 ; X32-NEXT: RET 0, implicit $eax658 ;659 ; X64-LABEL: name: test_anyext_i8660 ; X64: liveins: $edi661 ; X64-NEXT: {{ $}}662 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil663 ; X64-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)664 ; X64-NEXT: $eax = COPY [[ANYEXT]](s32)665 ; X64-NEXT: RET 0, implicit $eax666 %0(s8) = COPY $dil667 %1(s32) = G_ANYEXT %0(s8)668 $eax = COPY %1(s32)669 RET 0, implicit $eax670 671...672---673name: test_anyext_i16674alignment: 16675legalized: false676regBankSelected: false677registers:678 - { id: 0, class: _ }679 - { id: 1, class: _ }680body: |681 bb.1 (%ir-block.0):682 liveins: $edi683 684 ; X32-LABEL: name: test_anyext_i16685 ; X32: liveins: $edi686 ; X32-NEXT: {{ $}}687 ; X32-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di688 ; X32-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s16)689 ; X32-NEXT: $eax = COPY [[ANYEXT]](s32)690 ; X32-NEXT: RET 0, implicit $eax691 ;692 ; X64-LABEL: name: test_anyext_i16693 ; X64: liveins: $edi694 ; X64-NEXT: {{ $}}695 ; X64-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di696 ; X64-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s16)697 ; X64-NEXT: $eax = COPY [[ANYEXT]](s32)698 ; X64-NEXT: RET 0, implicit $eax699 %0(s16) = COPY $di700 %1(s32) = G_ANYEXT %0(s16)701 $eax = COPY %1(s32)702 RET 0, implicit $eax703 704...705