brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.4 KiB · e3074c3 Raw
330 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s3 4--- |5 6  define i8 @zext_i1_to_i8(i1 %val) {7    %res = zext i1 %val to i88    ret i8 %res9  }10 11  define i16 @zext_i1_to_i16(i1 %val) {12    %res = zext i1 %val to i1613    ret i16 %res14  }15 16  define i32 @zext_i1_to_i32(i1 %val) {17    %res = zext i1 %val to i3218    ret i32 %res19  }20 21  define i64 @zext_i1_to_i64(i1 %val) {22    %res = zext i1 %val to i6423    ret i64 %res24  }25 26  define i16 @zext_i8_to_i16(i8 %val) {27    %res = zext i8 %val to i1628    ret i16 %res29  }30 31  define i32 @zext_i8_to_i32(i8 %val) {32    %res = zext i8 %val to i3233    ret i32 %res34  }35 36  define i64 @zext_i8_to_i64(i8 %val) {37    %res = zext i8 %val to i6438    ret i64 %res39  }40 41  define i32 @zext_i16_to_i32(i16 %val) {42    %res = zext i16 %val to i3243    ret i32 %res44  }45 46  define i64 @zext_i16_to_i64(i16 %val) {47    %res = zext i16 %val to i6448    ret i64 %res49  }50 51  define i64 @zext_i32_to_i64(i32 %val) {52    %res = zext i32 %val to i6453    ret i64 %res54  }55 56...57---58name:            zext_i1_to_i859alignment:       1660tracksRegLiveness: true61registers:62  - { id: 0, class: _ }63  - { id: 1, class: _ }64  - { id: 2, class: _ }65body:             |66  bb.1 (%ir-block.0):67    liveins: $edi68 69    ; CHECK-LABEL: name: zext_i1_to_i870    ; CHECK: liveins: $edi71    ; CHECK-NEXT: {{  $}}72    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi73    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)74    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 175    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s8) = G_AND [[TRUNC]], [[C]]76    ; CHECK-NEXT: $al = COPY [[AND]](s8)77    ; CHECK-NEXT: RET 0, implicit $al78    %1:_(s32) = COPY $edi79    %0:_(s1) = G_TRUNC %1(s32)80    %2:_(s8) = G_ZEXT %0(s1)81    $al = COPY %2(s8)82    RET 0, implicit $al83 84...85---86name:            zext_i1_to_i1687alignment:       1688tracksRegLiveness: true89registers:90  - { id: 0, class: _ }91  - { id: 1, class: _ }92  - { id: 2, class: _ }93body:             |94  bb.1 (%ir-block.0):95    liveins: $edi96 97    ; CHECK-LABEL: name: zext_i1_to_i1698    ; CHECK: liveins: $edi99    ; CHECK-NEXT: {{  $}}100    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi101    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)102    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 1103    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C]]104    ; CHECK-NEXT: $ax = COPY [[AND]](s16)105    ; CHECK-NEXT: RET 0, implicit $ax106    %1:_(s32) = COPY $edi107    %0:_(s1) = G_TRUNC %1(s32)108    %2:_(s16) = G_ZEXT %0(s1)109    $ax = COPY %2(s16)110    RET 0, implicit $ax111 112...113---114name:            zext_i1_to_i32115alignment:       16116tracksRegLiveness: true117registers:118  - { id: 0, class: _ }119  - { id: 1, class: _ }120  - { id: 2, class: _ }121body:             |122  bb.1 (%ir-block.0):123    liveins: $edi124 125    ; CHECK-LABEL: name: zext_i1_to_i32126    ; CHECK: liveins: $edi127    ; CHECK-NEXT: {{  $}}128    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi129    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1130    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]131    ; CHECK-NEXT: $eax = COPY [[AND]](s32)132    ; CHECK-NEXT: RET 0, implicit $eax133    %1:_(s32) = COPY $edi134    %0:_(s1) = G_TRUNC %1(s32)135    %2:_(s32) = G_ZEXT %0(s1)136    $eax = COPY %2(s32)137    RET 0, implicit $eax138 139...140---141name:            zext_i1_to_i64142alignment:       16143tracksRegLiveness: true144registers:145  - { id: 0, class: _ }146  - { id: 1, class: _ }147  - { id: 2, class: _ }148body:             |149  bb.1 (%ir-block.0):150    liveins: $edi151 152    ; CHECK-LABEL: name: zext_i1_to_i64153    ; CHECK: liveins: $edi154    ; CHECK-NEXT: {{  $}}155    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi156    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s32)157    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1158    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ANYEXT]], [[C]]159    ; CHECK-NEXT: $rax = COPY [[AND]](s64)160    ; CHECK-NEXT: RET 0, implicit $rax161    %1:_(s32) = COPY $edi162    %0:_(s1) = G_TRUNC %1(s32)163    %2:_(s64) = G_ZEXT %0(s1)164    $rax = COPY %2(s64)165    RET 0, implicit $rax166 167...168---169name:            zext_i8_to_i16170alignment:       16171tracksRegLiveness: true172registers:173  - { id: 0, class: _ }174  - { id: 1, class: _ }175  - { id: 2, class: _ }176body:             |177  bb.1 (%ir-block.0):178    liveins: $edi179 180    ; CHECK-LABEL: name: zext_i8_to_i16181    ; CHECK: liveins: $edi182    ; CHECK-NEXT: {{  $}}183    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi184    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)185    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 255186    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C]]187    ; CHECK-NEXT: $ax = COPY [[AND]](s16)188    ; CHECK-NEXT: RET 0, implicit $ax189    %1:_(s32) = COPY $edi190    %0:_(s8) = G_TRUNC %1(s32)191    %2:_(s16) = G_ZEXT %0(s8)192    $ax = COPY %2(s16)193    RET 0, implicit $ax194 195...196---197name:            zext_i8_to_i32198alignment:       16199tracksRegLiveness: true200registers:201  - { id: 0, class: _ }202  - { id: 1, class: _ }203  - { id: 2, class: _ }204body:             |205  bb.1 (%ir-block.0):206    liveins: $edi207 208    ; CHECK-LABEL: name: zext_i8_to_i32209    ; CHECK: liveins: $edi210    ; CHECK-NEXT: {{  $}}211    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi212    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255213    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]214    ; CHECK-NEXT: $eax = COPY [[AND]](s32)215    ; CHECK-NEXT: RET 0, implicit $eax216    %1:_(s32) = COPY $edi217    %0:_(s8) = G_TRUNC %1(s32)218    %2:_(s32) = G_ZEXT %0(s8)219    $eax = COPY %2(s32)220    RET 0, implicit $eax221 222...223---224name:            zext_i8_to_i64225alignment:       16226tracksRegLiveness: true227registers:228  - { id: 0, class: _ }229  - { id: 1, class: _ }230  - { id: 2, class: _ }231body:             |232  bb.1 (%ir-block.0):233    liveins: $edi234 235    ; CHECK-LABEL: name: zext_i8_to_i64236    ; CHECK: liveins: $edi237    ; CHECK-NEXT: {{  $}}238    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi239    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s32)240    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255241    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ANYEXT]], [[C]]242    ; CHECK-NEXT: $rax = COPY [[AND]](s64)243    ; CHECK-NEXT: RET 0, implicit $rax244    %1:_(s32) = COPY $edi245    %0:_(s8) = G_TRUNC %1(s32)246    %2:_(s64) = G_ZEXT %0(s8)247    $rax = COPY %2(s64)248    RET 0, implicit $rax249 250...251---252name:            zext_i16_to_i32253alignment:       16254tracksRegLiveness: true255registers:256  - { id: 0, class: _ }257  - { id: 1, class: _ }258  - { id: 2, class: _ }259body:             |260  bb.1 (%ir-block.0):261    liveins: $edi262 263    ; CHECK-LABEL: name: zext_i16_to_i32264    ; CHECK: liveins: $edi265    ; CHECK-NEXT: {{  $}}266    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi267    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535268    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]269    ; CHECK-NEXT: $eax = COPY [[AND]](s32)270    ; CHECK-NEXT: RET 0, implicit $eax271    %1:_(s32) = COPY $edi272    %0:_(s16) = G_TRUNC %1(s32)273    %2:_(s32) = G_ZEXT %0(s16)274    $eax = COPY %2(s32)275    RET 0, implicit $eax276 277...278---279name:            zext_i16_to_i64280alignment:       16281tracksRegLiveness: true282registers:283  - { id: 0, class: _ }284  - { id: 1, class: _ }285  - { id: 2, class: _ }286body:             |287  bb.1 (%ir-block.0):288    liveins: $edi289 290    ; CHECK-LABEL: name: zext_i16_to_i64291    ; CHECK: liveins: $edi292    ; CHECK-NEXT: {{  $}}293    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi294    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s32)295    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535296    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ANYEXT]], [[C]]297    ; CHECK-NEXT: $rax = COPY [[AND]](s64)298    ; CHECK-NEXT: RET 0, implicit $rax299    %1:_(s32) = COPY $edi300    %0:_(s16) = G_TRUNC %1(s32)301    %2:_(s64) = G_ZEXT %0(s16)302    $rax = COPY %2(s64)303    RET 0, implicit $rax304 305...306---307name:            zext_i32_to_i64308alignment:       16309tracksRegLiveness: true310registers:311  - { id: 0, class: _ }312  - { id: 1, class: _ }313body:             |314  bb.1 (%ir-block.0):315    liveins: $edi316 317    ; CHECK-LABEL: name: zext_i32_to_i64318    ; CHECK: liveins: $edi319    ; CHECK-NEXT: {{  $}}320    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi321    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s32)322    ; CHECK-NEXT: $rax = COPY [[ZEXT]](s64)323    ; CHECK-NEXT: RET 0, implicit $rax324    %0:_(s32) = COPY $edi325    %1:_(s64) = G_ZEXT %0(s32)326    $rax = COPY %1(s64)327    RET 0, implicit $rax328 329...330