| ; 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(ptr %ptr, i8 %cmp, i8 %val) { | |
| ; PPC64LE-LABEL: test: | |
| ; PPC64LE: # %bb.0: | |
| ; PPC64LE-NEXT: clrlwi 5, 5, 24 | |
| ; PPC64LE-NEXT: clrlwi 4, 4, 24 | |
| ; PPC64LE-NEXT: .LBB0_1: # %cmpxchg.start | |
| ; PPC64LE-NEXT: # | |
| ; PPC64LE-NEXT: lbarx 6, 0, 3 | |
| ; PPC64LE-NEXT: cmplw 6, 4 | |
| ; PPC64LE-NEXT: bnelr- 0 | |
| ; PPC64LE-NEXT: # %bb.2: # %cmpxchg.fencedstore | |
| ; PPC64LE-NEXT: # | |
| ; PPC64LE-NEXT: stbcx. 5, 0, 3 | |
| ; PPC64LE-NEXT: bne- 0, .LBB0_1 | |
| ; PPC64LE-NEXT: # %bb.3: # %cmpxchg.end | |
| ; PPC64LE-NEXT: blr | |
| %res = cmpxchg ptr %ptr, i8 %cmp, i8 %val monotonic monotonic | |
| ret void | |
| } |