54 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -mtriple=powerpc \3; RUN: -mcpu=pwr7 < %s | FileCheck %s4; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -mtriple=powerpc \5; RUN: -mcpu=pwr8 < %s | FileCheck %s --check-prefix=PWR86 7define void @foo(ptr %a, i32 %x) {8; CHECK-LABEL: foo:9; CHECK: # %bb.0:10; CHECK-NEXT: rlwinm r5, r3, 3, 27, 2811; CHECK-NEXT: extsb r4, r412; CHECK-NEXT: li r6, 25513; CHECK-NEXT: sync14; CHECK-NEXT: rlwinm r3, r3, 0, 0, 2915; CHECK-NEXT: xori r5, r5, 2416; CHECK-NEXT: slw r7, r4, r517; CHECK-NEXT: slw r6, r6, r518; CHECK-NEXT: and r7, r7, r619; CHECK-NEXT: .LBB0_1:20; CHECK-NEXT: lwarx r8, 0, r321; CHECK-NEXT: and r9, r8, r622; CHECK-NEXT: srw r9, r9, r523; CHECK-NEXT: extsb r9, r924; CHECK-NEXT: cmpw r9, r425; CHECK-NEXT: bgt cr0, .LBB0_326; CHECK-NEXT: # %bb.2:27; CHECK-NEXT: andc r8, r8, r628; CHECK-NEXT: or r8, r7, r829; CHECK-NEXT: stwcx. r8, 0, r330; CHECK-NEXT: bne- cr0, .LBB0_131; CHECK-NEXT: .LBB0_3:32; CHECK-NEXT: lwsync33; CHECK-NEXT: blr34;35; PWR8-LABEL: foo:36; PWR8: # %bb.0:37; PWR8-NEXT: sync38; PWR8-NEXT: extsb r4, r439; PWR8-NEXT: .LBB0_1:40; PWR8-NEXT: lbarx r5, 0, r341; PWR8-NEXT: extsb r5, r542; PWR8-NEXT: cmpw r5, r443; PWR8-NEXT: bgt cr0, .LBB0_344; PWR8-NEXT: # %bb.2:45; PWR8-NEXT: stbcx. r4, 0, r346; PWR8-NEXT: bne- cr0, .LBB0_147; PWR8-NEXT: .LBB0_3:48; PWR8-NEXT: lwsync49; PWR8-NEXT: blr50 %val = trunc i32 %x to i851 %1 = atomicrmw max ptr %a, i8 %val seq_cst52 ret void53}54