brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.6 KiB · ecff2e6 Raw
199 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -mattr=+a,+zabha -run-pass=legalizer %s -o - | FileCheck %s --check-prefixes=RV32IA-ZABHA3# RUN: llc -mtriple=riscv32 -mattr=+a -run-pass=legalizer %s -o - | FileCheck %s --check-prefixes=RV32IA4 5---6name:            atomicrmw_add_i8_monotonic7body:             |8  bb.0.entry:9    liveins: $x10, $x1110 11    ; RV32IA-ZABHA-LABEL: name: atomicrmw_add_i8_monotonic12    ; RV32IA-ZABHA: liveins: $x10, $x1113    ; RV32IA-ZABHA-NEXT: {{  $}}14    ; RV32IA-ZABHA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1015    ; RV32IA-ZABHA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1116    ; RV32IA-ZABHA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[COPY1]] :: (load store monotonic (s8))17    ; RV32IA-ZABHA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)18    ; RV32IA-ZABHA-NEXT: PseudoRET implicit $x1019    ;20    ; RV32IA-LABEL: name: atomicrmw_add_i8_monotonic21    ; RV32IA: liveins: $x10, $x1122    ; RV32IA-NEXT: {{  $}}23    ; RV32IA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1024    ; RV32IA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1125    ; RV32IA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[COPY1]] :: (load store monotonic (s8))26    ; RV32IA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)27    ; RV32IA-NEXT: PseudoRET implicit $x1028    %0:_(p0) = COPY $x1029    %1:_(s32) = COPY $x1130    %2:_(s8) = G_TRUNC %1(s32)31    %3:_(s8) = G_ATOMICRMW_ADD %0(p0), %2 :: (load store monotonic (s8))32    %4:_(s32) = G_ANYEXT %3(s8)33    $x10 = COPY %4(s32)34    PseudoRET implicit $x1035...36---37name:            atomicrmw_add_i16_monotonic38body:             |39  bb.0.entry:40    liveins: $x10, $x1141 42    ; RV32IA-ZABHA-LABEL: name: atomicrmw_add_i16_monotonic43    ; RV32IA-ZABHA: liveins: $x10, $x1144    ; RV32IA-ZABHA-NEXT: {{  $}}45    ; RV32IA-ZABHA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1046    ; RV32IA-ZABHA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1147    ; RV32IA-ZABHA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[COPY1]] :: (load store monotonic (s16))48    ; RV32IA-ZABHA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)49    ; RV32IA-ZABHA-NEXT: PseudoRET implicit $x1050    ;51    ; RV32IA-LABEL: name: atomicrmw_add_i16_monotonic52    ; RV32IA: liveins: $x10, $x1153    ; RV32IA-NEXT: {{  $}}54    ; RV32IA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1055    ; RV32IA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1156    ; RV32IA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[COPY1]] :: (load store monotonic (s16))57    ; RV32IA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)58    ; RV32IA-NEXT: PseudoRET implicit $x1059    %0:_(p0) = COPY $x1060    %1:_(s32) = COPY $x1161    %2:_(s16) = G_TRUNC %1(s32)62    %3:_(s16) = G_ATOMICRMW_ADD %0(p0), %2 :: (load store monotonic (s16))63    %4:_(s32) = G_ANYEXT %3(s16)64    $x10 = COPY %4(s32)65    PseudoRET implicit $x1066...67---68name:            atomicrmw_add_i32_monotonic69body:             |70  bb.0.entry:71    liveins: $x10, $x1172 73    ; RV32IA-ZABHA-LABEL: name: atomicrmw_add_i32_monotonic74    ; RV32IA-ZABHA: liveins: $x10, $x1175    ; RV32IA-ZABHA-NEXT: {{  $}}76    ; RV32IA-ZABHA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1077    ; RV32IA-ZABHA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1178    ; RV32IA-ZABHA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[COPY1]] :: (load store monotonic (s32))79    ; RV32IA-ZABHA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)80    ; RV32IA-ZABHA-NEXT: PseudoRET implicit $x1081    ;82    ; RV32IA-LABEL: name: atomicrmw_add_i32_monotonic83    ; RV32IA: liveins: $x10, $x1184    ; RV32IA-NEXT: {{  $}}85    ; RV32IA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1086    ; RV32IA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1187    ; RV32IA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[COPY1]] :: (load store monotonic (s32))88    ; RV32IA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)89    ; RV32IA-NEXT: PseudoRET implicit $x1090    %0:_(p0) = COPY $x1091    %1:_(s32) = COPY $x1192    %2:_(s32) = G_ATOMICRMW_ADD %0(p0), %1 :: (load store monotonic (s32))93    $x10 = COPY %2(s32)94    PseudoRET implicit $x1095...96---97name:            atomicrmw_sub_i8_monotonic98body:             |99  bb.0.entry:100    liveins: $x10, $x11101 102    ; RV32IA-ZABHA-LABEL: name: atomicrmw_sub_i8_monotonic103    ; RV32IA-ZABHA: liveins: $x10, $x11104    ; RV32IA-ZABHA-NEXT: {{  $}}105    ; RV32IA-ZABHA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10106    ; RV32IA-ZABHA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11107    ; RV32IA-ZABHA-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0108    ; RV32IA-ZABHA-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY1]]109    ; RV32IA-ZABHA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[SUB]] :: (load store monotonic (s8))110    ; RV32IA-ZABHA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)111    ; RV32IA-ZABHA-NEXT: PseudoRET implicit $x10112    ;113    ; RV32IA-LABEL: name: atomicrmw_sub_i8_monotonic114    ; RV32IA: liveins: $x10, $x11115    ; RV32IA-NEXT: {{  $}}116    ; RV32IA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10117    ; RV32IA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11118    ; RV32IA-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0119    ; RV32IA-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY1]]120    ; RV32IA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[SUB]] :: (load store monotonic (s8))121    ; RV32IA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)122    ; RV32IA-NEXT: PseudoRET implicit $x10123    %0:_(p0) = COPY $x10124    %1:_(s32) = COPY $x11125    %2:_(s8) = G_TRUNC %1(s32)126    %3:_(s8) = G_ATOMICRMW_SUB %0(p0), %2 :: (load store monotonic (s8))127    %4:_(s32) = G_ANYEXT %3(s8)128    $x10 = COPY %4(s32)129    PseudoRET implicit $x10130...131---132name:            atomicrmw_sub_i16_monotonic133body:             |134  bb.0.entry:135    liveins: $x10, $x11136 137    ; RV32IA-ZABHA-LABEL: name: atomicrmw_sub_i16_monotonic138    ; RV32IA-ZABHA: liveins: $x10, $x11139    ; RV32IA-ZABHA-NEXT: {{  $}}140    ; RV32IA-ZABHA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10141    ; RV32IA-ZABHA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11142    ; RV32IA-ZABHA-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0143    ; RV32IA-ZABHA-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY1]]144    ; RV32IA-ZABHA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[SUB]] :: (load store monotonic (s16))145    ; RV32IA-ZABHA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)146    ; RV32IA-ZABHA-NEXT: PseudoRET implicit $x10147    ;148    ; RV32IA-LABEL: name: atomicrmw_sub_i16_monotonic149    ; RV32IA: liveins: $x10, $x11150    ; RV32IA-NEXT: {{  $}}151    ; RV32IA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10152    ; RV32IA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11153    ; RV32IA-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0154    ; RV32IA-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY1]]155    ; RV32IA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[SUB]] :: (load store monotonic (s16))156    ; RV32IA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)157    ; RV32IA-NEXT: PseudoRET implicit $x10158    %0:_(p0) = COPY $x10159    %1:_(s32) = COPY $x11160    %2:_(s16) = G_TRUNC %1(s32)161    %3:_(s16) = G_ATOMICRMW_SUB %0(p0), %2 :: (load store monotonic (s16))162    %4:_(s32) = G_ANYEXT %3(s16)163    $x10 = COPY %4(s32)164    PseudoRET implicit $x10165...166---167name:            atomicrmw_sub_i32_monotonic168body:             |169  bb.0.entry:170    liveins: $x10, $x11171 172    ; RV32IA-ZABHA-LABEL: name: atomicrmw_sub_i32_monotonic173    ; RV32IA-ZABHA: liveins: $x10, $x11174    ; RV32IA-ZABHA-NEXT: {{  $}}175    ; RV32IA-ZABHA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10176    ; RV32IA-ZABHA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11177    ; RV32IA-ZABHA-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0178    ; RV32IA-ZABHA-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY1]]179    ; RV32IA-ZABHA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[SUB]] :: (load store monotonic (s32))180    ; RV32IA-ZABHA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)181    ; RV32IA-ZABHA-NEXT: PseudoRET implicit $x10182    ;183    ; RV32IA-LABEL: name: atomicrmw_sub_i32_monotonic184    ; RV32IA: liveins: $x10, $x11185    ; RV32IA-NEXT: {{  $}}186    ; RV32IA-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10187    ; RV32IA-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11188    ; RV32IA-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0189    ; RV32IA-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY1]]190    ; RV32IA-NEXT: [[ATOMICRMW_ADD:%[0-9]+]]:_(s32) = G_ATOMICRMW_ADD [[COPY]](p0), [[SUB]] :: (load store monotonic (s32))191    ; RV32IA-NEXT: $x10 = COPY [[ATOMICRMW_ADD]](s32)192    ; RV32IA-NEXT: PseudoRET implicit $x10193    %0:_(p0) = COPY $x10194    %1:_(s32) = COPY $x11195    %2:_(s32) = G_ATOMICRMW_SUB %0(p0), %1 :: (load store monotonic (s32))196    $x10 = COPY %2(s32)197    PseudoRET implicit $x10198...199