Michael Liao fe87c302aa Add missing i8 max/min/umax/umin support
- Fix PR5145 and turn on test 8-bit atomic ops



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164358 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 03:18:52 +00:00

36 lines
829 B
LLVM

; RUN: llc -march=x86-64 < %s | FileCheck %s
@sc8 = external global i8
define void @atomic_maxmin_i8() {
; CHECK: atomic_maxmin_i8
%1 = atomicrmw max i8* @sc8, i8 5 acquire
; CHECK: [[LABEL:.LBB[0-9]+_[0-9]+]]
; CHECK: cmpb
; CHECK: cmovl
; CHECK: lock
; CHECK-NEXT: cmpxchgb
; CHECK: jne [[LABEL]]
%2 = atomicrmw min i8* @sc8, i8 6 acquire
; CHECK: [[LABEL:.LBB[0-9]+_[0-9]+]]
; CHECK: cmpb
; CHECK: cmovg
; CHECK: lock
; CHECK-NEXT: cmpxchgb
; CHECK: jne [[LABEL]]
%3 = atomicrmw umax i8* @sc8, i8 7 acquire
; CHECK: [[LABEL:.LBB[0-9]+_[0-9]+]]
; CHECK: cmpb
; CHECK: cmovb
; CHECK: lock
; CHECK-NEXT: cmpxchgb
; CHECK: jne [[LABEL]]
%4 = atomicrmw umin i8* @sc8, i8 8 acquire
; CHECK: [[LABEL:.LBB[0-9]+_[0-9]+]]
; CHECK: cmpb
; CHECK: cmova
; CHECK: lock
; CHECK-NEXT: cmpxchgb
; CHECK: jne [[LABEL]]
ret void
}