blob: 5befc228e03c213c26edbf951ef511d223d9a7fd [file] [log] [blame]
NAKAMURA Takumiaaf189b2012-09-26 10:12:20 +00001; RUN: llc -march=arm -mcpu=cortex-a9 < %s | FileCheck %s
James Molloy9e98ef12012-09-26 09:48:32 +00002
Stephen Lind24ab202013-07-14 06:24:09 +00003; CHECK-LABEL: max:
James Molloy9e98ef12012-09-26 09:48:32 +00004define i32 @max(i8 %ctx, i32* %ptr, i32 %val)
5{
6; CHECK: ldrex
7; CHECK: cmp [[old:r[0-9]*]], [[val:r[0-9]*]]
8; CHECK: movhi {{r[0-9]*}}, [[old]]
9 %old = atomicrmw umax i32* %ptr, i32 %val monotonic
10 ret i32 %old
11}
12
Stephen Lind24ab202013-07-14 06:24:09 +000013; CHECK-LABEL: min:
James Molloy9e98ef12012-09-26 09:48:32 +000014define i32 @min(i8 %ctx, i32* %ptr, i32 %val)
15{
16; CHECK: ldrex
17; CHECK: cmp [[old:r[0-9]*]], [[val:r[0-9]*]]
18; CHECK: movlo {{r[0-9]*}}, [[old]]
19 %old = atomicrmw umin i32* %ptr, i32 %val monotonic
20 ret i32 %old
21}