brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.8 KiB · b3c62df Raw
191 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:            add_i76body:             |7  bb.0.entry:8    ; CHECK-LABEL: name: add_i79    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1010    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1111    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]12    ; CHECK-NEXT: $x10 = COPY [[ADD]](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_ADD %2, %319    %5:_(s32) = G_ANYEXT %4(s7)20    $x10 = COPY %5(s32)21    PseudoRET implicit $x1022 23...24---25name:            add_i826body:             |27  bb.0.entry:28    ; CHECK-LABEL: name: add_i829    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1030    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1131    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]32    ; CHECK-NEXT: $x10 = COPY [[ADD]](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_ADD %2, %339    %5:_(s32) = G_ANYEXT %4(s8)40    $x10 = COPY %5(s32)41    PseudoRET implicit $x1042 43...44---45name:            add_i1646body:             |47  bb.0.entry:48    ; CHECK-LABEL: name: add_i1649    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1050    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1151    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]52    ; CHECK-NEXT: $x10 = COPY [[ADD]](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_ADD %2, %359    %5:_(s32) = G_ANYEXT %4(s16)60    $x10 = COPY %5(s32)61    PseudoRET implicit $x1062 63...64---65name:            add_i3266body:             |67  bb.0.entry:68    ; CHECK-LABEL: name: add_i3269    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1070    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1171    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]72    ; CHECK-NEXT: $x10 = COPY [[ADD]](s32)73    ; CHECK-NEXT: PseudoRET implicit $x1074    %0:_(s32) = COPY $x1075    %1:_(s32) = COPY $x1176    %2:_(s32) = G_ADD %0, %177    $x10 = COPY %2(s32)78    PseudoRET implicit $x1079 80...81---82name:            add_i4883body:             |84  bb.0.entry:85    ; CHECK-LABEL: name: add_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: [[ADD:%[0-9]+]]:_(s32) = G_ADD %xlo, %ylo91    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), %ylo92    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)93    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD %xhi, %yhi94    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]95    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)96    ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)97    ; CHECK-NEXT: $x11 = COPY [[COPY1]](s32)98    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1199    %xlo:_(s32) = COPY $x10100    %xhi:_(s32) = COPY $x11101    %ylo:_(s32) = COPY $x12102    %yhi:_(s32) = COPY $x13103    %x0:_(s64) = G_MERGE_VALUES %xlo(s32), %xhi(s32)104    %y0:_(s64) = G_MERGE_VALUES %ylo(s32), %yhi(s32)105    %x:_(s48) = G_TRUNC %x0(s64)106    %y:_(s48) = G_TRUNC %y0(s64)107    %z:_(s48) = G_ADD %x, %y108    %z0:_(s64) = G_ANYEXT %z(s48)109    %zlo:_(s32), %zhi:_(s32) = G_UNMERGE_VALUES %z0(s64)110    $x10 = COPY %zlo(s32)111    $x11 = COPY %zhi(s32)112    PseudoRET implicit $x10, implicit $x11113 114...115---116name:            add_i64117body:             |118  bb.0.entry:119    ; CHECK-LABEL: name: add_i64120    ; CHECK: %lo1:_(s32) = COPY $x10121    ; CHECK-NEXT: %hi1:_(s32) = COPY $x11122    ; CHECK-NEXT: %lo2:_(s32) = COPY $x12123    ; CHECK-NEXT: %hi2:_(s32) = COPY $x13124    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD %lo1, %lo2125    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), %lo2126    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)127    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD %hi1, %hi2128    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]129    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)130    ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)131    ; CHECK-NEXT: $x11 = COPY [[COPY1]](s32)132    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11133    %lo1:_(s32) = COPY $x10134    %hi1:_(s32) = COPY $x11135    %lo2:_(s32) = COPY $x12136    %hi2:_(s32) = COPY $x13137    %x1:_(s64) = G_MERGE_VALUES %lo1(s32), %hi1(s32)138    %x2:_(s64) = G_MERGE_VALUES %lo2(s32), %hi2(s32)139    %y:_(s64) = G_ADD %x1, %x2140    %loy:_(s32), %hiy:_(s32) = G_UNMERGE_VALUES %y(s64)141    $x10 = COPY %loy(s32)142    $x11 = COPY %hiy(s32)143    PseudoRET implicit $x10, implicit $x11144 145...146---147name:            add_i96148body:             |149  bb.0.entry:150    ; CHECK-LABEL: name: add_i96151    ; CHECK: %lo1:_(s32) = COPY $x10152    ; CHECK-NEXT: %mid1:_(s32) = COPY $x11153    ; CHECK-NEXT: %hi1:_(s32) = COPY $x12154    ; CHECK-NEXT: %lo2:_(s32) = COPY $x13155    ; CHECK-NEXT: %mid2:_(s32) = COPY $x14156    ; CHECK-NEXT: %hi2:_(s32) = COPY $x15157    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD %lo1, %lo2158    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), %lo2159    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)160    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD %mid1, %mid2161    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD1]](s32), %mid1162    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]163    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0164    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[ADD2]](s32), [[C]]165    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ICMP2]], [[ICMP]]166    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[ICMP1]], [[AND]]167    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)168    ; CHECK-NEXT: [[ADD3:%[0-9]+]]:_(s32) = G_ADD %hi1, %hi2169    ; CHECK-NEXT: [[ADD4:%[0-9]+]]:_(s32) = G_ADD [[ADD3]], [[OR]]170    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[ADD4]](s32)171    ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)172    ; CHECK-NEXT: $x11 = COPY [[COPY1]](s32)173    ; CHECK-NEXT: $x12 = COPY [[COPY2]](s32)174    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12175    %lo1:_(s32) = COPY $x10176    %mid1:_(s32) = COPY $x11177    %hi1:_(s32) = COPY $x12178    %lo2:_(s32) = COPY $x13179    %mid2:_(s32) = COPY $x14180    %hi2:_(s32) = COPY $x15181    %x1:_(s96) = G_MERGE_VALUES %lo1(s32), %mid1(s32), %hi1(s32)182    %x2:_(s96) = G_MERGE_VALUES %lo2(s32), %mid2(s32), %hi2(s32)183    %y:_(s96) = G_ADD %x1, %x2184    %lo:_(s32), %mid:_(s32), %hi:_(s32) = G_UNMERGE_VALUES %y(s96)185    $x10 = COPY %lo(s32)186    $x11 = COPY %mid(s32)187    $x12 = COPY %hi(s32)188    PseudoRET implicit $x10, implicit $x11, implicit $x12189 190...191