• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -march=x86-64 < %s | FileCheck %s
2@sc8 = external global i8
3
4define void @atomic_maxmin_i8() {
5; CHECK: atomic_maxmin_i8
6  %1 = atomicrmw max  i8* @sc8, i8 5 acquire
7; CHECK: [[LABEL1:\.?LBB[0-9]+_[0-9]+]]:
8; CHECK: cmpb
9; CHECK: cmovl
10; CHECK: lock
11; CHECK-NEXT: cmpxchgb
12; CHECK: jne [[LABEL1]]
13  %2 = atomicrmw min  i8* @sc8, i8 6 acquire
14; CHECK: [[LABEL3:\.?LBB[0-9]+_[0-9]+]]:
15; CHECK: cmpb
16; CHECK: cmovg
17; CHECK: lock
18; CHECK-NEXT: cmpxchgb
19; CHECK: jne [[LABEL3]]
20  %3 = atomicrmw umax i8* @sc8, i8 7 acquire
21; CHECK: [[LABEL5:\.?LBB[0-9]+_[0-9]+]]:
22; CHECK: cmpb
23; CHECK: cmovb
24; CHECK: lock
25; CHECK-NEXT: cmpxchgb
26; CHECK: jne [[LABEL5]]
27  %4 = atomicrmw umin i8* @sc8, i8 8 acquire
28; CHECK: [[LABEL7:\.?LBB[0-9]+_[0-9]+]]:
29; CHECK: cmpb
30; CHECK: cmova
31; CHECK: lock
32; CHECK-NEXT: cmpxchgb
33; CHECK: jne [[LABEL7]]
34  ret void
35}
36