brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.7 KiB · aff7d4d Raw
162 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4---5name:            sext_i326body:             |7  bb.0.entry:8    ; CHECK-LABEL: name: sext_i329    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1010    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1111    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]12    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[ADD]], 3213    ; CHECK-NEXT: $x10 = COPY [[SEXT_INREG]](s64)14    ; CHECK-NEXT: PseudoRET implicit $x1015    %0:_(s64) = COPY $x1016    %1:_(s64) = COPY $x1117    %2:_(s32) = G_TRUNC %0(s64)18    %3:_(s32) = G_TRUNC %1(s64)19    %4:_(s32) = G_ADD %2, %320    %5:_(s64) = G_SEXT %4(s32)21    $x10 = COPY %5(s64)22    PseudoRET implicit $x1023 24...25---26name:            zext_i3227body:             |28  bb.0.entry:29    ; CHECK-LABEL: name: zext_i3230    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1031    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1132    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]33    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[ADD]], 3234    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 429496729535    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[SEXT_INREG]], [[C]]36    ; CHECK-NEXT: $x10 = COPY [[AND]](s64)37    ; CHECK-NEXT: PseudoRET implicit $x1038    %0:_(s64) = COPY $x1039    %1:_(s64) = COPY $x1140    %2:_(s32) = G_TRUNC %0(s64)41    %3:_(s32) = G_TRUNC %1(s64)42    %4:_(s32) = G_ADD %2, %343    %5:_(s64) = G_ZEXT %4(s32)44    $x10 = COPY %5(s64)45    PseudoRET implicit $x1046 47...48---49name:            anyext_16_i3250body:             |51  ; CHECK-LABEL: name: anyext_16_i3252  ; CHECK: bb.0.entry:53  ; CHECK-NEXT:   successors: %bb.1(0x80000000)54  ; CHECK-NEXT: {{  $}}55  ; CHECK-NEXT: bb.1:56  ; CHECK-NEXT:   liveins: $x10, $x1157  ; CHECK-NEXT: {{  $}}58  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x1059  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x1160  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 061  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[C]](s64)62  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16))63  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[LOAD]](s16)64  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 165  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C1]]66  ; CHECK-NEXT:   [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s64), [[ANYEXT]], [[TRUNC]]67  ; CHECK-NEXT:   [[ANYEXT1:%[0-9]+]]:_(s64) = G_ANYEXT [[SELECT]](s32)68  ; CHECK-NEXT:   $x10 = COPY [[ANYEXT1]](s64)69  ; CHECK-NEXT:   PseudoRET implicit $x1070  bb.0.entry:71  bb.1:72    liveins: $x10, $x1173 74    %0:_(p0) = COPY $x1075    %1:_(s64) = COPY $x1176    %2:_(s1) = G_TRUNC %1(s64)77    %3:_(s32) = G_CONSTANT i32 078    %4:_(s16) = G_LOAD %0(p0) :: (load (s16))79    %5:_(s32) = G_ANYEXT %4(s16)80    %6:_(s32) = G_SELECT %2(s1), %5, %381    %7:_(s64) = G_ANYEXT %6(s32)82    $x10 = COPY %7(s64)83    PseudoRET implicit $x1084 85...86---87name:            sext_16_i3288body:             |89  ; CHECK-LABEL: name: sext_16_i3290  ; CHECK: bb.0.entry:91  ; CHECK-NEXT:   successors: %bb.1(0x80000000)92  ; CHECK-NEXT: {{  $}}93  ; CHECK-NEXT: bb.1:94  ; CHECK-NEXT:   liveins: $x10, $x1195  ; CHECK-NEXT: {{  $}}96  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x1097  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x1198  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 099  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[C]](s64)100  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16))101  ; CHECK-NEXT:   [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[LOAD]](s16)102  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1103  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C1]]104  ; CHECK-NEXT:   [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s64), [[SEXT]], [[TRUNC]]105  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SELECT]](s32)106  ; CHECK-NEXT:   $x10 = COPY [[ANYEXT]](s64)107  ; CHECK-NEXT:   PseudoRET implicit $x10108  bb.0.entry:109  bb.1:110    liveins: $x10, $x11111 112    %0:_(p0) = COPY $x10113    %1:_(s64) = COPY $x11114    %2:_(s1) = G_TRUNC %1(s64)115    %3:_(s32) = G_CONSTANT i32 0116    %4:_(s16) = G_LOAD %0(p0) :: (load (s16))117    %5:_(s32) = G_SEXT %4(s16)118    %6:_(s32) = G_SELECT %2(s1), %5, %3119    %7:_(s64) = G_ANYEXT %6(s32)120    $x10 = COPY %7(s64)121    PseudoRET implicit $x10122 123...124---125name:            zext_16_i32126body:             |127  ; CHECK-LABEL: name: zext_16_i32128  ; CHECK: bb.0.entry:129  ; CHECK-NEXT:   successors: %bb.1(0x80000000)130  ; CHECK-NEXT: {{  $}}131  ; CHECK-NEXT: bb.1:132  ; CHECK-NEXT:   liveins: $x10, $x11133  ; CHECK-NEXT: {{  $}}134  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x10135  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11136  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0137  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[C]](s64)138  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16))139  ; CHECK-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD]](s16)140  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1141  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C1]]142  ; CHECK-NEXT:   [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s64), [[ZEXT]], [[TRUNC]]143  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SELECT]](s32)144  ; CHECK-NEXT:   $x10 = COPY [[ANYEXT]](s64)145  ; CHECK-NEXT:   PseudoRET implicit $x10146  bb.0.entry:147  bb.1:148    liveins: $x10, $x11149 150    %0:_(p0) = COPY $x10151    %1:_(s64) = COPY $x11152    %2:_(s1) = G_TRUNC %1(s64)153    %3:_(s32) = G_CONSTANT i32 0154    %4:_(s16) = G_LOAD %0(p0) :: (load (s16))155    %5:_(s32) = G_ZEXT %4(s16)156    %6:_(s32) = G_SELECT %2(s1), %5, %3157    %7:_(s64) = G_ANYEXT %6(s32)158    $x10 = COPY %7(s64)159    PseudoRET implicit $x10160 161...162