xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/pr5145.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=x86-64 < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker@sc8 = external global i8
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine void @atomic_maxmin_i8() {
5*9880d681SAndroid Build Coastguard Worker; CHECK: atomic_maxmin_i8
6*9880d681SAndroid Build Coastguard Worker  %1 = atomicrmw max  i8* @sc8, i8 5 acquire
7*9880d681SAndroid Build Coastguard Worker; CHECK: [[LABEL1:\.?LBB[0-9]+_[0-9]+]]:
8*9880d681SAndroid Build Coastguard Worker; CHECK: cmpb
9*9880d681SAndroid Build Coastguard Worker; CHECK: jg
10*9880d681SAndroid Build Coastguard Worker; CHECK: lock cmpxchgb
11*9880d681SAndroid Build Coastguard Worker; CHECK: jne [[LABEL1]]
12*9880d681SAndroid Build Coastguard Worker  %2 = atomicrmw min  i8* @sc8, i8 6 acquire
13*9880d681SAndroid Build Coastguard Worker; CHECK: [[LABEL3:\.?LBB[0-9]+_[0-9]+]]:
14*9880d681SAndroid Build Coastguard Worker; CHECK: cmpb
15*9880d681SAndroid Build Coastguard Worker; CHECK: jl
16*9880d681SAndroid Build Coastguard Worker; CHECK: lock cmpxchgb
17*9880d681SAndroid Build Coastguard Worker; CHECK: jne [[LABEL3]]
18*9880d681SAndroid Build Coastguard Worker  %3 = atomicrmw umax i8* @sc8, i8 7 acquire
19*9880d681SAndroid Build Coastguard Worker; CHECK: [[LABEL5:\.?LBB[0-9]+_[0-9]+]]:
20*9880d681SAndroid Build Coastguard Worker; CHECK: cmpb
21*9880d681SAndroid Build Coastguard Worker; CHECK: ja
22*9880d681SAndroid Build Coastguard Worker; CHECK: lock cmpxchgb
23*9880d681SAndroid Build Coastguard Worker; CHECK: jne [[LABEL5]]
24*9880d681SAndroid Build Coastguard Worker  %4 = atomicrmw umin i8* @sc8, i8 8 acquire
25*9880d681SAndroid Build Coastguard Worker; CHECK: [[LABEL7:\.?LBB[0-9]+_[0-9]+]]:
26*9880d681SAndroid Build Coastguard Worker; CHECK: cmpb
27*9880d681SAndroid Build Coastguard Worker; CHECK: jb
28*9880d681SAndroid Build Coastguard Worker; CHECK: lock cmpxchgb
29*9880d681SAndroid Build Coastguard Worker; CHECK: jne [[LABEL7]]
30*9880d681SAndroid Build Coastguard Worker  ret void
31*9880d681SAndroid Build Coastguard Worker}
32