| ; RUN: llc -verify-machineinstrs < %s -mtriple=ppc64-- -O1 | FileCheck %s |
| ; RUN: llc -verify-machineinstrs < %s -mtriple=ppc64-- | FileCheck --check-prefix=CHECK-OPT %s |
| |
| %struct.__db_region = type { %struct.__mutex_t, [4 x i8], %struct.anon, i32, [1 x i32] } |
| %struct.__mutex_t = type { i32 } |
| %struct.anon = type { i64, i64 } |
| |
| define void @foo() { |
| entry: |
| %ttype = alloca i32, align 4 ; <i32*> [#uses=1] |
| %regs = alloca [1024 x %struct.__db_region], align 16 ; <[1024 x %struct.__db_region]*> [#uses=0] |
| %tmp = load i32, i32* %ttype, align 4 ; <i32> [#uses=1] |
| %tmp1 = call i32 (...) @bork( i32 %tmp ) ; <i32> [#uses=0] |
| ret void |
| |
| ; CHECK: @foo |
| ; CHECK: lwzx |
| ; CHECK: blr |
| ; CHECK-OPT: @foo |
| ; CHECK-OPT: lwz |
| ; CHECK-OPT: blr |
| } |
| |
| define signext i32 @test(i32* noalias nocapture readonly %b, i32 signext %n) { |
| entry: |
| %idxprom = sext i32 %n to i64 |
| %arrayidx = getelementptr inbounds i32, i32* %b, i64 %idxprom |
| %0 = load i32, i32* %arrayidx, align 4 |
| %mul = mul nsw i32 %0, 7 |
| ret i32 %mul |
| |
| ; CHECK-OPT: @test |
| ; CHECK-OPT: lwzx |
| ; CHECK-OPT: blr |
| |
| } |
| |
| |
| declare i32 @bork(...) |