22 lines
693 B
LLVM
22 lines
693 B
LLVM
|
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||
|
; RUN: llc -mtriple=powerpc64le-linux-gnu < %s | FileCheck %s -check-prefix=PPC64LE
|
||
|
|
||
|
define void @test(i8* %ptr, i8 %cmp, i8 %val) {
|
||
|
; PPC64LE-LABEL: test:
|
||
|
; PPC64LE: # %bb.0:
|
||
|
; PPC64LE-NEXT: clrlwi 4, 4, 24
|
||
|
; PPC64LE-NEXT: .LBB0_1:
|
||
|
; PPC64LE-NEXT: lbarx 6, 0, 3
|
||
|
; PPC64LE-NEXT: cmpw 4, 6
|
||
|
; PPC64LE-NEXT: bne 0, .LBB0_3
|
||
|
; PPC64LE-NEXT: # %bb.2:
|
||
|
; PPC64LE-NEXT: stbcx. 5, 0, 3
|
||
|
; PPC64LE-NEXT: beqlr 0
|
||
|
; PPC64LE-NEXT: b .LBB0_1
|
||
|
; PPC64LE-NEXT: .LBB0_3:
|
||
|
; PPC64LE-NEXT: stbcx. 6, 0, 3
|
||
|
; PPC64LE-NEXT: blr
|
||
|
%res = cmpxchg i8* %ptr, i8 %cmp, i8 %val monotonic monotonic
|
||
|
ret void
|
||
|
}
|