brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.4 KiB · 258d026 Raw
184 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4---5name:            sub_i76body:             |7  bb.0.entry:8    ; CHECK-LABEL: name: sub_i79    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1010    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1111    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]12    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)13    ; CHECK-NEXT: PseudoRET implicit $x1014    %0:_(s32) = COPY $x1015    %1:_(s32) = COPY $x1116    %2:_(s7) = G_TRUNC %0(s32)17    %3:_(s7) = G_TRUNC %1(s32)18    %4:_(s7) = G_SUB %2, %319    %5:_(s32) = G_ANYEXT %4(s7)20    $x10 = COPY %5(s32)21    PseudoRET implicit $x1022 23...24---25name:            sub_i826body:             |27  bb.0.entry:28    ; CHECK-LABEL: name: sub_i829    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1030    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1131    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]32    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)33    ; CHECK-NEXT: PseudoRET implicit $x1034    %0:_(s32) = COPY $x1035    %1:_(s32) = COPY $x1136    %2:_(s8) = G_TRUNC %0(s32)37    %3:_(s8) = G_TRUNC %1(s32)38    %4:_(s8) = G_SUB %2, %339    %5:_(s32) = G_ANYEXT %4(s8)40    $x10 = COPY %5(s32)41    PseudoRET implicit $x1042 43...44---45name:            sub_i1646body:             |47  bb.0.entry:48    ; CHECK-LABEL: name: sub_i1649    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1050    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1151    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]52    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)53    ; CHECK-NEXT: PseudoRET implicit $x1054    %0:_(s32) = COPY $x1055    %1:_(s32) = COPY $x1156    %2:_(s16) = G_TRUNC %0(s32)57    %3:_(s16) = G_TRUNC %1(s32)58    %4:_(s16) = G_SUB %2, %359    %5:_(s32) = G_ANYEXT %4(s16)60    $x10 = COPY %5(s32)61    PseudoRET implicit $x1062 63...64---65name:            sub_i3266body:             |67  bb.0.entry:68    ; CHECK-LABEL: name: sub_i3269    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1070    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1171    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]72    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)73    ; CHECK-NEXT: PseudoRET implicit $x1074    %0:_(s32) = COPY $x1075    %1:_(s32) = COPY $x1176    %2:_(s32) = G_SUB %0, %177    $x10 = COPY %2(s32)78    PseudoRET implicit $x1079 80...81---82name:            sub_i4883body:             |84  bb.0.entry:85    ; CHECK-LABEL: name: sub_i4886    ; CHECK: %xlo:_(s32) = COPY $x1087    ; CHECK-NEXT: %xhi:_(s32) = COPY $x1188    ; CHECK-NEXT: %ylo:_(s32) = COPY $x1289    ; CHECK-NEXT: %yhi:_(s32) = COPY $x1390    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB %xlo, %ylo91    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), %xlo(s32), %ylo92    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB %xhi, %yhi93    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]94    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)95    ; CHECK-NEXT: $x11 = COPY [[SUB2]](s32)96    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1197    %xlo:_(s32) = COPY $x1098    %xhi:_(s32) = COPY $x1199    %ylo:_(s32) = COPY $x12100    %yhi:_(s32) = COPY $x13101    %x0:_(s64) = G_MERGE_VALUES %xlo(s32), %xhi(s32)102    %y0:_(s64) = G_MERGE_VALUES %ylo(s32), %yhi(s32)103    %x:_(s48) = G_TRUNC %x0(s64)104    %y:_(s48) = G_TRUNC %y0(s64)105    %z:_(s48) = G_SUB %x, %y106    %z0:_(s64) = G_ANYEXT %z(s48)107    %zlo:_(s32), %zhi:_(s32) = G_UNMERGE_VALUES %z0(s64)108    $x10 = COPY %zlo(s32)109    $x11 = COPY %zhi(s32)110    PseudoRET implicit $x10, implicit $x11111 112...113---114name:            sub_i64115body:             |116  bb.0.entry:117    ; CHECK-LABEL: name: sub_i64118    ; CHECK: %lo1:_(s32) = COPY $x10119    ; CHECK-NEXT: %hi1:_(s32) = COPY $x11120    ; CHECK-NEXT: %lo2:_(s32) = COPY $x12121    ; CHECK-NEXT: %hi2:_(s32) = COPY $x13122    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB %lo1, %lo2123    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), %lo1(s32), %lo2124    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB %hi1, %hi2125    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]126    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)127    ; CHECK-NEXT: $x11 = COPY [[SUB2]](s32)128    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11129    %lo1:_(s32) = COPY $x10130    %hi1:_(s32) = COPY $x11131    %lo2:_(s32) = COPY $x12132    %hi2:_(s32) = COPY $x13133    %x1:_(s64) = G_MERGE_VALUES %lo1(s32), %hi1(s32)134    %x2:_(s64) = G_MERGE_VALUES %lo2(s32), %hi2(s32)135    %y:_(s64) = G_SUB %x1, %x2136    %loy:_(s32), %hiy:_(s32) = G_UNMERGE_VALUES %y(s64)137    $x10 = COPY %loy(s32)138    $x11 = COPY %hiy(s32)139    PseudoRET implicit $x10, implicit $x11140 141...142---143name:            sub_i96144body:             |145  bb.0.entry:146    ; CHECK-LABEL: name: sub_i96147    ; CHECK: %lo1:_(s32) = COPY $x10148    ; CHECK-NEXT: %mid1:_(s32) = COPY $x11149    ; CHECK-NEXT: %hi1:_(s32) = COPY $x12150    ; CHECK-NEXT: %lo2:_(s32) = COPY $x13151    ; CHECK-NEXT: %mid2:_(s32) = COPY $x14152    ; CHECK-NEXT: %hi2:_(s32) = COPY $x15153    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB %lo1, %lo2154    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), %lo1(s32), %lo2155    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB %mid1, %mid2156    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[SUB1]](s32), %mid1157    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]158    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0159    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[SUB1]](s32), [[C]]160    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ICMP2]], [[ICMP]]161    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[ICMP1]], [[AND]]162    ; CHECK-NEXT: [[SUB3:%[0-9]+]]:_(s32) = G_SUB %hi1, %hi2163    ; CHECK-NEXT: [[SUB4:%[0-9]+]]:_(s32) = G_SUB [[SUB3]], [[OR]]164    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)165    ; CHECK-NEXT: $x11 = COPY [[SUB2]](s32)166    ; CHECK-NEXT: $x12 = COPY [[SUB4]](s32)167    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12168    %lo1:_(s32) = COPY $x10169    %mid1:_(s32) = COPY $x11170    %hi1:_(s32) = COPY $x12171    %lo2:_(s32) = COPY $x13172    %mid2:_(s32) = COPY $x14173    %hi2:_(s32) = COPY $x15174    %x1:_(s96) = G_MERGE_VALUES %lo1(s32), %mid1(s32), %hi1(s32)175    %x2:_(s96) = G_MERGE_VALUES %lo2(s32), %mid2(s32), %hi2(s32)176    %y:_(s96) = G_SUB %x1, %x2177    %lo:_(s32), %mid:_(s32), %hi:_(s32) = G_UNMERGE_VALUES %y(s96)178    $x10 = COPY %lo(s32)179    $x11 = COPY %mid(s32)180    $x12 = COPY %hi(s32)181    PseudoRET implicit $x10, implicit $x11, implicit $x12182 183...184