brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · 8f2b9f3 Raw
212 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:            add_i86body:             |7  bb.0.entry:8    ; CHECK-LABEL: name: add_i89    ; 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: $x10 = COPY [[ADD]](s64)13    ; CHECK-NEXT: PseudoRET implicit $x1014    %0:_(s64) = COPY $x1015    %1:_(s64) = COPY $x1116    %2:_(s8) = G_TRUNC %0(s64)17    %3:_(s8) = G_TRUNC %1(s64)18    %4:_(s8) = G_ADD %2, %319    %5:_(s64) = G_ANYEXT %4(s8)20    $x10 = COPY %5(s64)21    PseudoRET implicit $x1022 23...24---25name:            add_i1526body:             |27  bb.0.entry:28    ; CHECK-LABEL: name: add_i1529    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1030    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1131    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]32    ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)33    ; CHECK-NEXT: PseudoRET implicit $x1034    %0:_(s64) = COPY $x1035    %1:_(s64) = COPY $x1136    %2:_(s15) = G_TRUNC %0(s64)37    %3:_(s15) = G_TRUNC %1(s64)38    %4:_(s15) = G_ADD %2, %339    %5:_(s64) = G_ANYEXT %4(s15)40    $x10 = COPY %5(s64)41    PseudoRET implicit $x1042 43...44---45name:            add_i1646body:             |47  bb.0.entry:48    ; CHECK-LABEL: name: add_i1649    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1050    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1151    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]52    ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)53    ; CHECK-NEXT: PseudoRET implicit $x1054    %0:_(s64) = COPY $x1055    %1:_(s64) = COPY $x1156    %2:_(s16) = G_TRUNC %0(s64)57    %3:_(s16) = G_TRUNC %1(s64)58    %4:_(s16) = G_ADD %2, %359    %5:_(s64) = G_ANYEXT %4(s16)60    $x10 = COPY %5(s64)61    PseudoRET implicit $x1062 63...64---65name:            add_i3266body:             |67  bb.0.entry:68    ; CHECK-LABEL: name: add_i3269    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1070    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1171    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]72    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[ADD]], 3273    ; CHECK-NEXT: $x10 = COPY [[SEXT_INREG]](s64)74    ; CHECK-NEXT: PseudoRET implicit $x1075    %0:_(s64) = COPY $x1076    %1:_(s64) = COPY $x1177    %2:_(s32) = G_TRUNC %0(s64)78    %3:_(s32) = G_TRUNC %1(s64)79    %4:_(s32) = G_ADD %2, %380    %5:_(s64) = G_ANYEXT %4(s32)81    $x10 = COPY %5(s64)82    PseudoRET implicit $x1083 84...85---86name:            add_i6487body:             |88  bb.0.entry:89    ; CHECK-LABEL: name: add_i6490    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1091    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1192    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]93    ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)94    ; CHECK-NEXT: PseudoRET implicit $x1095    %0:_(s64) = COPY $x1096    %1:_(s64) = COPY $x1197    %2:_(s64) = G_ADD %0, %198    $x10 = COPY %2(s64)99    PseudoRET implicit $x10100 101...102---103name:            add_i72104body:             |105  bb.0.entry:106    ; CHECK-LABEL: name: add_i72107    ; CHECK: %x00:_(s64) = COPY $x10108    ; CHECK-NEXT: %x01:_(s64) = COPY $x11109    ; CHECK-NEXT: %y00:_(s64) = COPY $x12110    ; CHECK-NEXT: %y01:_(s64) = COPY $x13111    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD %x00, %y00112    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[ADD]](s64), %y00113    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[ADD]](s64)114    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s64) = G_ADD %x01, %y01115    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s64) = G_ADD [[ADD1]], [[ICMP]]116    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY [[ADD2]](s64)117    ; CHECK-NEXT: $x10 = COPY [[COPY]](s64)118    ; CHECK-NEXT: $x11 = COPY [[COPY1]](s64)119    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11120    %x00:_(s64) = COPY $x10121    %x01:_(s64) = COPY $x11122    %y00:_(s64) = COPY $x12123    %y01:_(s64) = COPY $x13124    %x0:_(s128) = G_MERGE_VALUES %x00(s64), %x01125    %y0:_(s128) = G_MERGE_VALUES %y00(s64), %y01126    %x:_(s72) = G_TRUNC %x0(s128)127    %y:_(s72) = G_TRUNC %y0(s128)128    %z:_(s72) = G_ADD %x, %y129    %z0:_(s128) = G_ANYEXT %z(s72)130    %z00:_(s64), %z01:_(s64) = G_UNMERGE_VALUES %z0(s128)131    $x10 = COPY %z00(s64)132    $x11 = COPY %z01(s64)133    PseudoRET implicit $x10, implicit $x11134 135...136---137name:            add_i128138body:             |139  bb.0.entry:140    ; CHECK-LABEL: name: add_i128141    ; CHECK: %lo1:_(s64) = COPY $x10142    ; CHECK-NEXT: %hi1:_(s64) = COPY $x11143    ; CHECK-NEXT: %lo2:_(s64) = COPY $x12144    ; CHECK-NEXT: %hi2:_(s64) = COPY $x13145    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD %lo1, %lo2146    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[ADD]](s64), %lo2147    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[ADD]](s64)148    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s64) = G_ADD %hi1, %hi2149    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s64) = G_ADD [[ADD1]], [[ICMP]]150    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY [[ADD2]](s64)151    ; CHECK-NEXT: $x10 = COPY [[COPY]](s64)152    ; CHECK-NEXT: $x11 = COPY [[COPY1]](s64)153    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11154    %lo1:_(s64) = COPY $x10155    %hi1:_(s64) = COPY $x11156    %lo2:_(s64) = COPY $x12157    %hi2:_(s64) = COPY $x13158    %x1:_(s128) = G_MERGE_VALUES %lo1(s64), %hi1(s64)159    %x2:_(s128) = G_MERGE_VALUES %lo2(s64), %hi2(s64)160    %y:_(s128) = G_ADD %x1, %x2161    %loy:_(s64), %hiy:_(s64) = G_UNMERGE_VALUES %y(s128)162    $x10 = COPY %loy(s64)163    $x11 = COPY %hiy(s64)164    PseudoRET implicit $x10, implicit $x11165 166...167---168name:            add_i192169body:             |170  bb.0.entry:171    ; CHECK-LABEL: name: add_i192172    ; CHECK: %lo1:_(s64) = COPY $x10173    ; CHECK-NEXT: %mid1:_(s64) = COPY $x11174    ; CHECK-NEXT: %hi1:_(s64) = COPY $x12175    ; CHECK-NEXT: %lo2:_(s64) = COPY $x13176    ; CHECK-NEXT: %mid2:_(s64) = COPY $x14177    ; CHECK-NEXT: %hi2:_(s64) = COPY $x15178    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD %lo1, %lo2179    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[ADD]](s64), %lo2180    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[ADD]](s64)181    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s64) = G_ADD %mid1, %mid2182    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[ADD1]](s64), %mid1183    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s64) = G_ADD [[ADD1]], [[ICMP]]184    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0185    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[ADD2]](s64), [[C]]186    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ICMP2]], [[ICMP]]187    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[ICMP1]], [[AND]]188    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY [[ADD2]](s64)189    ; CHECK-NEXT: [[ADD3:%[0-9]+]]:_(s64) = G_ADD %hi1, %hi2190    ; CHECK-NEXT: [[ADD4:%[0-9]+]]:_(s64) = G_ADD [[ADD3]], [[OR]]191    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY [[ADD4]](s64)192    ; CHECK-NEXT: $x10 = COPY [[COPY]](s64)193    ; CHECK-NEXT: $x11 = COPY [[COPY1]](s64)194    ; CHECK-NEXT: $x12 = COPY [[COPY2]](s64)195    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12196    %lo1:_(s64) = COPY $x10197    %mid1:_(s64) = COPY $x11198    %hi1:_(s64) = COPY $x12199    %lo2:_(s64) = COPY $x13200    %mid2:_(s64) = COPY $x14201    %hi2:_(s64) = COPY $x15202    %x1:_(s192) = G_MERGE_VALUES %lo1(s64), %mid1(s64), %hi1(s64)203    %x2:_(s192) = G_MERGE_VALUES %lo2(s64), %mid2(s64), %hi2(s64)204    %y:_(s192) = G_ADD %x1, %x2205    %lo:_(s64), %mid:_(s64), %hi:_(s64) = G_UNMERGE_VALUES %y(s192)206    $x10 = COPY %lo(s64)207    $x11 = COPY %mid(s64)208    $x12 = COPY %hi(s64)209    PseudoRET implicit $x10, implicit $x11, implicit $x12210 211...212