brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.4 KiB · 239f7c5 Raw
145 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=legalizer %s -o - | FileCheck %s --check-prefixes=RV64I3# RUN: llc -mtriple=riscv64 -mattr=+zbb -run-pass=legalizer %s -o - \4# RUN:   | FileCheck %s --check-prefixes=RV64ZBB5 6---7name:            smax_i88body:             |9  bb.0.entry:10    ; RV64I-LABEL: name: smax_i811    ; RV64I: [[COPY:%[0-9]+]]:_(s64) = COPY $x1012    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1113    ; RV64I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5614    ; RV64I-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)15    ; RV64I-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)16    ; RV64I-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)17    ; RV64I-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)18    ; RV64I-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[ASHR]](s64), [[ASHR1]]19    ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)20    ; RV64I-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)21    ; RV64I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s64), [[TRUNC]], [[TRUNC1]]22    ; RV64I-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SELECT]](s32)23    ; RV64I-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL [[ANYEXT]], [[C]](s64)24    ; RV64I-NEXT: [[ASHR2:%[0-9]+]]:_(s64) = G_ASHR [[SHL2]], [[C]](s64)25    ; RV64I-NEXT: $x10 = COPY [[ASHR2]](s64)26    ; RV64I-NEXT: PseudoRET implicit $x1027    ;28    ; RV64ZBB-LABEL: name: smax_i829    ; RV64ZBB: [[COPY:%[0-9]+]]:_(s64) = COPY $x1030    ; RV64ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1131    ; RV64ZBB-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 832    ; RV64ZBB-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 833    ; RV64ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s64) = G_SMAX [[SEXT_INREG]], [[SEXT_INREG1]]34    ; RV64ZBB-NEXT: $x10 = COPY [[SMAX]](s64)35    ; RV64ZBB-NEXT: PseudoRET implicit $x1036    %0:_(s64) = COPY $x1037    %1:_(s64) = COPY $x1138    %2:_(s8) = G_TRUNC %0(s64)39    %3:_(s8) = G_TRUNC %1(s64)40    %4:_(s8) = G_SMAX %2, %341    %5:_(s64) = G_SEXT %4(s8)42    $x10 = COPY %5(s64)43    PseudoRET implicit $x1044...45 46---47name:            smax_i1648body:             |49  bb.0.entry:50    ; RV64I-LABEL: name: smax_i1651    ; RV64I: [[COPY:%[0-9]+]]:_(s64) = COPY $x1052    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1153    ; RV64I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4854    ; RV64I-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)55    ; RV64I-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)56    ; RV64I-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)57    ; RV64I-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)58    ; RV64I-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[ASHR]](s64), [[ASHR1]]59    ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)60    ; RV64I-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)61    ; RV64I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s64), [[TRUNC]], [[TRUNC1]]62    ; RV64I-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SELECT]](s32)63    ; RV64I-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL [[ANYEXT]], [[C]](s64)64    ; RV64I-NEXT: [[ASHR2:%[0-9]+]]:_(s64) = G_ASHR [[SHL2]], [[C]](s64)65    ; RV64I-NEXT: $x10 = COPY [[ASHR2]](s64)66    ; RV64I-NEXT: PseudoRET implicit $x1067    ;68    ; RV64ZBB-LABEL: name: smax_i1669    ; RV64ZBB: [[COPY:%[0-9]+]]:_(s64) = COPY $x1070    ; RV64ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1171    ; RV64ZBB-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 1672    ; RV64ZBB-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 1673    ; RV64ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s64) = G_SMAX [[SEXT_INREG]], [[SEXT_INREG1]]74    ; RV64ZBB-NEXT: $x10 = COPY [[SMAX]](s64)75    ; RV64ZBB-NEXT: PseudoRET implicit $x1076    %0:_(s64) = COPY $x1077    %1:_(s64) = COPY $x1178    %2:_(s16) = G_TRUNC %0(s64)79    %3:_(s16) = G_TRUNC %1(s64)80    %4:_(s16) = G_SMAX %2, %381    %5:_(s64) = G_SEXT %4(s16)82    $x10 = COPY %5(s64)83    PseudoRET implicit $x1084...85 86---87name:            smax_i3288body:             |89  bb.0.entry:90    ; RV64I-LABEL: name: smax_i3291    ; RV64I: [[COPY:%[0-9]+]]:_(s64) = COPY $x1092    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1193    ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)94    ; RV64I-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)95    ; RV64I-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 3296    ; RV64I-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 3297    ; RV64I-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[SEXT_INREG]](s64), [[SEXT_INREG1]]98    ; RV64I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s64), [[TRUNC]], [[TRUNC1]]99    ; RV64I-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SELECT]](s32)100    ; RV64I-NEXT: $x10 = COPY [[SEXT]](s64)101    ; RV64I-NEXT: PseudoRET implicit $x10102    ;103    ; RV64ZBB-LABEL: name: smax_i32104    ; RV64ZBB: [[COPY:%[0-9]+]]:_(s64) = COPY $x10105    ; RV64ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11106    ; RV64ZBB-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32107    ; RV64ZBB-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32108    ; RV64ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s64) = G_SMAX [[SEXT_INREG]], [[SEXT_INREG1]]109    ; RV64ZBB-NEXT: $x10 = COPY [[SMAX]](s64)110    ; RV64ZBB-NEXT: PseudoRET implicit $x10111    %0:_(s64) = COPY $x10112    %1:_(s64) = COPY $x11113    %2:_(s32) = G_TRUNC %0(s64)114    %3:_(s32) = G_TRUNC %1(s64)115    %4:_(s32) = G_SMAX %2, %3116    %5:_(s64) = G_SEXT %4(s32)117    $x10 = COPY %5(s64)118    PseudoRET implicit $x10119...120 121---122name:            smax_i64123body:             |124  bb.0.entry:125    ; RV64I-LABEL: name: smax_i64126    ; RV64I: [[COPY:%[0-9]+]]:_(s64) = COPY $x10127    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11128    ; RV64I-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[COPY]](s64), [[COPY1]]129    ; RV64I-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s64), [[COPY]], [[COPY1]]130    ; RV64I-NEXT: $x10 = COPY [[SELECT]](s64)131    ; RV64I-NEXT: PseudoRET implicit $x10132    ;133    ; RV64ZBB-LABEL: name: smax_i64134    ; RV64ZBB: [[COPY:%[0-9]+]]:_(s64) = COPY $x10135    ; RV64ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11136    ; RV64ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s64) = G_SMAX [[COPY]], [[COPY1]]137    ; RV64ZBB-NEXT: $x10 = COPY [[SMAX]](s64)138    ; RV64ZBB-NEXT: PseudoRET implicit $x10139    %0:_(s64) = COPY $x10140    %1:_(s64) = COPY $x11141    %2:_(s64) = G_SMAX %0, %1142    $x10 = COPY %2(s64)143    PseudoRET implicit $x10144...145