xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/llvm-ir/atomicrmx.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -asm-show-inst  -march=mipsel -mcpu=mips32r6 < %s | \
2*9880d681SAndroid Build Coastguard Worker; RUN:    FileCheck %s -check-prefix=CHK32
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -asm-show-inst  -march=mips64el -mcpu=mips64r6 < %s | \
4*9880d681SAndroid Build Coastguard Worker; RUN:    FileCheck %s -check-prefix=CHK64
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker@a = common global i32 0, align 4
7*9880d681SAndroid Build Coastguard Worker@b = common global i64 0, align 8
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdefine i32 @ll_sc(i32 signext %x) {
11*9880d681SAndroid Build Coastguard Worker; CHK32-LABEL: ll_sc
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker;CHK32:  LL_R6
14*9880d681SAndroid Build Coastguard Worker;CHK32:  SC_R6
15*9880d681SAndroid Build Coastguard Worker  %1 = atomicrmw add i32* @a, i32 %x monotonic
16*9880d681SAndroid Build Coastguard Worker  ret i32 %1
17*9880d681SAndroid Build Coastguard Worker}
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workerdefine i64 @lld_scd(i64 signext %x) {
20*9880d681SAndroid Build Coastguard Worker; CHK64-LABEL: lld_scd
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker;CHK64:  LLD_R6
23*9880d681SAndroid Build Coastguard Worker;CHK64:  SCD_R6
24*9880d681SAndroid Build Coastguard Worker  %1 = atomicrmw add i64* @b, i64 %x monotonic
25*9880d681SAndroid Build Coastguard Worker  ret i64 %1
26*9880d681SAndroid Build Coastguard Worker}
27