106 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=ELF643; RUN: llc -mtriple=powerpc64-ibm-aix-xcoff < %s | FileCheck %s -check-prefix=AIX644 5@x = global i32 1000, align 46 7define signext i32 @bar() #0 {8; ELF64-LABEL: bar:9; ELF64: # %bb.0: # %entry10; ELF64-NEXT: mflr 011; ELF64-NEXT: stdu 1, -112(1)12; ELF64-NEXT: std 0, 128(1)13; ELF64-NEXT: .cfi_def_cfa_offset 11214; ELF64-NEXT: .cfi_offset lr, 1615; ELF64-NEXT: li 3, 016; ELF64-NEXT: stw 3, 108(1)17; ELF64-NEXT: li 3, 018; ELF64-NEXT: stw 3, 104(1)19; ELF64-NEXT: .LBB0_1: # %for.cond20; ELF64-NEXT: #21; ELF64-NEXT: lwz 3, 104(1)22; ELF64-NEXT: addis 4, 2, .LC0@toc@ha23; ELF64-NEXT: ld 4, .LC0@toc@l(4)24; ELF64-NEXT: lwz 4, 0(4)25; ELF64-NEXT: cmpw 3, 426; ELF64-NEXT: bge 0, .LBB0_427; ELF64-NEXT: # %bb.2: # %for.body28; ELF64-NEXT: #29; ELF64-NEXT: bl foo30; ELF64-NEXT: nop31; ELF64-NEXT: # %bb.3: # %for.inc32; ELF64-NEXT: #33; ELF64-NEXT: lwz 3, 104(1)34; ELF64-NEXT: addi 3, 3, 135; ELF64-NEXT: stw 3, 104(1)36; ELF64-NEXT: b .LBB0_137; ELF64-NEXT: .LBB0_4: # %for.end38; ELF64-NEXT: li 3, 039; ELF64-NEXT: addi 1, 1, 11240; ELF64-NEXT: ld 0, 16(1)41; ELF64-NEXT: mtlr 042; ELF64-NEXT: blr43;44; AIX64-LABEL: bar:45; AIX64: # %bb.0: # %entry46; AIX64-NEXT: mflr 047; AIX64-NEXT: stdu 1, -128(1)48; AIX64-NEXT: std 0, 144(1)49; AIX64-NEXT: li 3, 050; AIX64-NEXT: stw 3, 124(1)51; AIX64-NEXT: li 3, 052; AIX64-NEXT: stw 3, 120(1)53; AIX64-NEXT: L..BB0_1: # %for.cond54; AIX64-NEXT: #55; AIX64-NEXT: lwz 3, 120(1)56; AIX64-NEXT: ld 4, L..C0(2) # @x57; AIX64-NEXT: lwz 4, 0(4)58; AIX64-NEXT: cmpw 3, 459; AIX64-NEXT: bge 0, L..BB0_460; AIX64-NEXT: # %bb.2: # %for.body61; AIX64-NEXT: #62; AIX64-NEXT: bl .foo[PR]63; AIX64-NEXT: nop64; AIX64-NEXT: # %bb.3: # %for.inc65; AIX64-NEXT: #66; AIX64-NEXT: lwz 3, 120(1)67; AIX64-NEXT: addi 3, 3, 168; AIX64-NEXT: stw 3, 120(1)69; AIX64-NEXT: b L..BB0_170; AIX64-NEXT: L..BB0_4: # %for.end71; AIX64-NEXT: li 3, 072; AIX64-NEXT: addi 1, 1, 12873; AIX64-NEXT: ld 0, 16(1)74; AIX64-NEXT: mtlr 075; AIX64-NEXT: blr76entry:77 %retval = alloca i32, align 478 %i = alloca i32, align 479 store i32 0, ptr %retval, align 480 store i32 0, ptr %i, align 481 br label %for.cond82 83for.cond:84 %0 = load i32, ptr %i, align 485 %1 = load i32, ptr @x, align 486 %cmp = icmp slt i32 %0, %187 br i1 %cmp, label %for.body, label %for.end88 89for.body:90 call void @foo()91 br label %for.inc92 93for.inc:94 %2 = load i32, ptr %i, align 495 %inc = add nsw i32 %2, 196 store i32 %inc, ptr %i, align 497 br label %for.cond98 99for.end:100 ret i32 0101}102 103declare void @foo(...)104 105attributes #0 = { optnone noinline }106