| ; RUN: llc -march=arm -mcpu=cortex-a9 < %s | FileCheck %s | |
| ; CHECK: max: | |
| define i32 @max(i8 %ctx, i32* %ptr, i32 %val) | |
| { | |
| ; CHECK: ldrex | |
| ; CHECK: cmp [[old:r[0-9]*]], [[val:r[0-9]*]] | |
| ; CHECK: movhi {{r[0-9]*}}, [[old]] | |
| %old = atomicrmw umax i32* %ptr, i32 %val monotonic | |
| ret i32 %old | |
| } | |
| ; CHECK: min: | |
| define i32 @min(i8 %ctx, i32* %ptr, i32 %val) | |
| { | |
| ; CHECK: ldrex | |
| ; CHECK: cmp [[old:r[0-9]*]], [[val:r[0-9]*]] | |
| ; CHECK: movlo {{r[0-9]*}}, [[old]] | |
| %old = atomicrmw umin i32* %ptr, i32 %val monotonic | |
| ret i32 %old | |
| } |