blob: 68bf71486a2398b4c6674abcbc808c382fb5b0a8 [file] [log] [blame]
Saleem Abdulrasool72587352014-04-03 16:01:44 +00001; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - | 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]*]]
Tim Northoverc882eb02014-04-03 11:44:58 +000018; CHECK: movls {{r[0-9]*}}, [[old]]
James Molloy9e98ef12012-09-26 09:48:32 +000019 %old = atomicrmw umin i32* %ptr, i32 %val monotonic
20 ret i32 %old
21}