brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.0 KiB · f34826c Raw
204 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -mattr=+a,+zabha -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s3 4---5name:            atomicrmw_add_i8_monotonic6legalized:       true7regBankSelected: true8tracksRegLiveness: true9body:             |10  bb.0.entry:11    liveins: $x10, $x1112 13    ; CHECK-LABEL: name: atomicrmw_add_i8_monotonic14    ; CHECK: liveins: $x10, $x1115    ; CHECK-NEXT: {{  $}}16    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1017    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1118    ; CHECK-NEXT: [[AMOADD_B:%[0-9]+]]:gpr = AMOADD_B [[COPY1]], [[COPY]] :: (load store monotonic (s8))19    ; CHECK-NEXT: $x10 = COPY [[AMOADD_B]]20    ; CHECK-NEXT: PseudoRET implicit $x1021    %0:gprb(p0) = COPY $x1022    %1:gprb(s64) = COPY $x1123    %2:gprb(s64) = G_ATOMICRMW_ADD %0(p0), %1 :: (load store monotonic (s8))24    $x10 = COPY %2(s64)25    PseudoRET implicit $x1026...27---28name:            atomicrmw_add_i16_monotonic29legalized:       true30regBankSelected: true31tracksRegLiveness: true32body:             |33  bb.0.entry:34    liveins: $x10, $x1135 36    ; CHECK-LABEL: name: atomicrmw_add_i16_monotonic37    ; CHECK: liveins: $x10, $x1138    ; CHECK-NEXT: {{  $}}39    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1040    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1141    ; CHECK-NEXT: [[AMOADD_H:%[0-9]+]]:gpr = AMOADD_H [[COPY1]], [[COPY]] :: (load store monotonic (s16))42    ; CHECK-NEXT: $x10 = COPY [[AMOADD_H]]43    ; CHECK-NEXT: PseudoRET implicit $x1044    %0:gprb(p0) = COPY $x1045    %1:gprb(s64) = COPY $x1146    %2:gprb(s64) = G_ATOMICRMW_ADD %0(p0), %1 :: (load store monotonic (s16))47    $x10 = COPY %2(s64)48    PseudoRET implicit $x1049...50---51name:            atomicrmw_add_i32_monotonic52legalized:       true53regBankSelected: true54tracksRegLiveness: true55body:             |56  bb.0.entry:57    liveins: $x10, $x1158 59    ; CHECK-LABEL: name: atomicrmw_add_i32_monotonic60    ; CHECK: liveins: $x10, $x1161    ; CHECK-NEXT: {{  $}}62    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1063    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1164    ; CHECK-NEXT: [[AMOADD_W:%[0-9]+]]:gpr = AMOADD_W [[COPY1]], [[COPY]] :: (load store monotonic (s32))65    ; CHECK-NEXT: $x10 = COPY [[AMOADD_W]]66    ; CHECK-NEXT: PseudoRET implicit $x1067    %0:gprb(p0) = COPY $x1068    %1:gprb(s64) = COPY $x1169    %2:gprb(s64) = G_ATOMICRMW_ADD %0(p0), %1 :: (load store monotonic (s32))70    $x10 = COPY %2(s64)71    PseudoRET implicit $x1072...73---74name:            atomicrmw_add_i64_monotonic75legalized:       true76regBankSelected: true77tracksRegLiveness: true78body:             |79  bb.0.entry:80    liveins: $x10, $x1181 82    ; CHECK-LABEL: name: atomicrmw_add_i64_monotonic83    ; CHECK: liveins: $x10, $x1184    ; CHECK-NEXT: {{  $}}85    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1086    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1187    ; CHECK-NEXT: [[AMOADD_D:%[0-9]+]]:gpr = AMOADD_D [[COPY1]], [[COPY]] :: (load store monotonic (s64))88    ; CHECK-NEXT: $x10 = COPY [[AMOADD_D]]89    ; CHECK-NEXT: PseudoRET implicit $x1090    %0:gprb(p0) = COPY $x1091    %1:gprb(s64) = COPY $x1192    %2:gprb(s64) = G_ATOMICRMW_ADD %0(p0), %1 :: (load store monotonic (s64))93    $x10 = COPY %2(s64)94    PseudoRET implicit $x1095...96---97name:            atomicrmw_sub_i8_monotonic98legalized:       true99regBankSelected: true100tracksRegLiveness: true101body:             |102  bb.0.entry:103    liveins: $x10, $x11104 105    ; CHECK-LABEL: name: atomicrmw_sub_i8_monotonic106    ; CHECK: liveins: $x10, $x11107    ; CHECK-NEXT: {{  $}}108    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10109    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11110    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x0111    ; CHECK-NEXT: [[SUB:%[0-9]+]]:gpr = SUB [[COPY2]], [[COPY1]]112    ; CHECK-NEXT: [[AMOADD_B:%[0-9]+]]:gpr = AMOADD_B [[SUB]], [[COPY]] :: (load store monotonic (s8))113    ; CHECK-NEXT: $x10 = COPY [[AMOADD_B]]114    ; CHECK-NEXT: PseudoRET implicit $x10115    %0:gprb(p0) = COPY $x10116    %1:gprb(s64) = COPY $x11117    %2:gprb(s64) = G_CONSTANT i64 0118    %3:gprb(s64) = G_SUB %2(s64), %1(s64)119    %4:gprb(s64) = G_ATOMICRMW_ADD %0(p0), %3 :: (load store monotonic (s8))120    $x10 = COPY %4(s64)121    PseudoRET implicit $x10122...123---124name:            atomicrmw_sub_i16_monotonic125legalized:       true126regBankSelected: true127tracksRegLiveness: true128body:             |129  bb.0.entry:130    liveins: $x10, $x11131 132    ; CHECK-LABEL: name: atomicrmw_sub_i16_monotonic133    ; CHECK: liveins: $x10, $x11134    ; CHECK-NEXT: {{  $}}135    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10136    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11137    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x0138    ; CHECK-NEXT: [[SUB:%[0-9]+]]:gpr = SUB [[COPY2]], [[COPY1]]139    ; CHECK-NEXT: [[AMOADD_H:%[0-9]+]]:gpr = AMOADD_H [[SUB]], [[COPY]] :: (load store monotonic (s16))140    ; CHECK-NEXT: $x10 = COPY [[AMOADD_H]]141    ; CHECK-NEXT: PseudoRET implicit $x10142    %0:gprb(p0) = COPY $x10143    %1:gprb(s64) = COPY $x11144    %2:gprb(s64) = G_CONSTANT i64 0145    %3:gprb(s64) = G_SUB %2(s64), %1(s64)146    %4:gprb(s64) = G_ATOMICRMW_ADD %0(p0), %3 :: (load store monotonic (s16))147    $x10 = COPY %4(s64)148    PseudoRET implicit $x10149...150---151name:            atomicrmw_sub_i32_monotonic152legalized:       true153regBankSelected: true154tracksRegLiveness: true155body:             |156  bb.0.entry:157    liveins: $x10, $x11158 159    ; CHECK-LABEL: name: atomicrmw_sub_i32_monotonic160    ; CHECK: liveins: $x10, $x11161    ; CHECK-NEXT: {{  $}}162    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10163    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11164    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x0165    ; CHECK-NEXT: [[SUB:%[0-9]+]]:gpr = SUB [[COPY2]], [[COPY1]]166    ; CHECK-NEXT: [[AMOADD_W:%[0-9]+]]:gpr = AMOADD_W [[SUB]], [[COPY]] :: (load store monotonic (s32))167    ; CHECK-NEXT: $x10 = COPY [[AMOADD_W]]168    ; CHECK-NEXT: PseudoRET implicit $x10169    %0:gprb(p0) = COPY $x10170    %1:gprb(s64) = COPY $x11171    %2:gprb(s64) = G_CONSTANT i64 0172    %3:gprb(s64) = G_SUB %2(s64), %1(s64)173    %4:gprb(s64) = G_ATOMICRMW_ADD %0(p0), %3 :: (load store monotonic (s32))174    $x10 = COPY %4(s64)175    PseudoRET implicit $x10176...177---178name:            atomicrmw_sub_i64_monotonic179legalized:       true180regBankSelected: true181tracksRegLiveness: true182body:             |183  bb.0.entry:184    liveins: $x10, $x11185 186    ; CHECK-LABEL: name: atomicrmw_sub_i64_monotonic187    ; CHECK: liveins: $x10, $x11188    ; CHECK-NEXT: {{  $}}189    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10190    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11191    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x0192    ; CHECK-NEXT: [[SUB:%[0-9]+]]:gpr = SUB [[COPY2]], [[COPY1]]193    ; CHECK-NEXT: [[AMOADD_B:%[0-9]+]]:gpr = AMOADD_B [[SUB]], [[COPY]] :: (load store monotonic (s8))194    ; CHECK-NEXT: $x10 = COPY [[AMOADD_B]]195    ; CHECK-NEXT: PseudoRET implicit $x10196    %0:gprb(p0) = COPY $x10197    %1:gprb(s64) = COPY $x11198    %2:gprb(s64) = G_CONSTANT i64 0199    %3:gprb(s64) = G_SUB %2(s64), %1(s64)200    %4:gprb(s64) = G_ATOMICRMW_ADD %0(p0), %3 :: (load store monotonic (s8))201    $x10 = COPY %4(s64)202    PseudoRET implicit $x10203...204