144b020a3SKeith Packard; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2*01463a26Szhijian lin; RUN: llc -mcpu=ppc -mtriple=powerpc64 -verify-machineinstrs < %s \ 344b020a3SKeith Packard; RUN: | FileCheck %s --check-prefixes=BE64 444b020a3SKeith Packard; RUN: llc -mtriple=powerpc64le -verify-machineinstrs < %s \ 544b020a3SKeith Packard; RUN: | FileCheck %s --check-prefixes=LE64 644b020a3SKeith Packard; RUN: llc -mtriple=ppc32 -verify-machineinstrs < %s \ 744b020a3SKeith Packard; RUN: | FileCheck %s --check-prefixes=LE32 844b020a3SKeith Packard 944b020a3SKeith Packarddefine void @foo(i64 %t) sspstrong nounwind { 1044b020a3SKeith Packard; BE64-LABEL: foo: 1144b020a3SKeith Packard; BE64: # %bb.0: 1244b020a3SKeith Packard; BE64-NEXT: mflr 0 1344b020a3SKeith Packard; BE64-NEXT: std 31, -8(1) 1444b020a3SKeith Packard; BE64-NEXT: stdu 1, -144(1) 1544b020a3SKeith Packard; BE64-NEXT: ld 4, 500(13) 1644b020a3SKeith Packard; BE64-NEXT: sldi 3, 3, 2 1744b020a3SKeith Packard; BE64-NEXT: mr 31, 1 1844b020a3SKeith Packard; BE64-NEXT: addi 3, 3, 15 1944b020a3SKeith Packard; BE64-NEXT: rldicr 3, 3, 0, 59 2044b020a3SKeith Packard; BE64-NEXT: std 0, 160(1) 2144b020a3SKeith Packard; BE64-NEXT: neg 3, 3 2244b020a3SKeith Packard; BE64-NEXT: std 4, 128(31) 2344b020a3SKeith Packard; BE64-NEXT: addi 4, 31, 144 2444b020a3SKeith Packard; BE64-NEXT: stdux 4, 1, 3 2544b020a3SKeith Packard; BE64-NEXT: addi 3, 1, 112 2644b020a3SKeith Packard; BE64-NEXT: bl baz 2744b020a3SKeith Packard; BE64-NEXT: nop 2844b020a3SKeith Packard; BE64-NEXT: ld 3, 128(31) 2944b020a3SKeith Packard; BE64-NEXT: ld 4, 500(13) 3044b020a3SKeith Packard; BE64-NEXT: cmpld 4, 3 3144b020a3SKeith Packard; BE64-NEXT: bne 0, .LBB0_2 3244b020a3SKeith Packard; BE64-NEXT: # %bb.1: 3344b020a3SKeith Packard; BE64-NEXT: ld 1, 0(1) 3444b020a3SKeith Packard; BE64-NEXT: ld 0, 16(1) 3544b020a3SKeith Packard; BE64-NEXT: ld 31, -8(1) 3644b020a3SKeith Packard; BE64-NEXT: mtlr 0 3744b020a3SKeith Packard; BE64-NEXT: blr 3844b020a3SKeith Packard; BE64-NEXT: .LBB0_2: 3944b020a3SKeith Packard; BE64-NEXT: bl __stack_chk_fail 4044b020a3SKeith Packard; BE64-NEXT: nop 4144b020a3SKeith Packard; 4244b020a3SKeith Packard; LE64-LABEL: foo: 4344b020a3SKeith Packard; LE64: # %bb.0: 4444b020a3SKeith Packard; LE64-NEXT: mflr 0 4544b020a3SKeith Packard; LE64-NEXT: std 31, -8(1) 4644b020a3SKeith Packard; LE64-NEXT: stdu 1, -64(1) 4744b020a3SKeith Packard; LE64-NEXT: sldi 3, 3, 2 4844b020a3SKeith Packard; LE64-NEXT: ld 4, 500(13) 4944b020a3SKeith Packard; LE64-NEXT: std 0, 80(1) 5044b020a3SKeith Packard; LE64-NEXT: addi 3, 3, 15 5144b020a3SKeith Packard; LE64-NEXT: mr 31, 1 5244b020a3SKeith Packard; LE64-NEXT: std 4, 48(31) 5344b020a3SKeith Packard; LE64-NEXT: addi 4, 31, 64 5444b020a3SKeith Packard; LE64-NEXT: rldicr 3, 3, 0, 59 5544b020a3SKeith Packard; LE64-NEXT: neg 3, 3 5644b020a3SKeith Packard; LE64-NEXT: stdux 4, 1, 3 5744b020a3SKeith Packard; LE64-NEXT: addi 3, 1, 32 5844b020a3SKeith Packard; LE64-NEXT: bl baz 5944b020a3SKeith Packard; LE64-NEXT: nop 6044b020a3SKeith Packard; LE64-NEXT: ld 3, 48(31) 6144b020a3SKeith Packard; LE64-NEXT: ld 4, 500(13) 6244b020a3SKeith Packard; LE64-NEXT: cmpld 4, 3 6344b020a3SKeith Packard; LE64-NEXT: bne 0, .LBB0_2 6444b020a3SKeith Packard; LE64-NEXT: # %bb.1: 6544b020a3SKeith Packard; LE64-NEXT: ld 1, 0(1) 6644b020a3SKeith Packard; LE64-NEXT: ld 0, 16(1) 6744b020a3SKeith Packard; LE64-NEXT: ld 31, -8(1) 6844b020a3SKeith Packard; LE64-NEXT: mtlr 0 6944b020a3SKeith Packard; LE64-NEXT: blr 7044b020a3SKeith Packard; LE64-NEXT: .LBB0_2: 7144b020a3SKeith Packard; LE64-NEXT: bl __stack_chk_fail 7244b020a3SKeith Packard; LE64-NEXT: nop 7344b020a3SKeith Packard; 7444b020a3SKeith Packard; LE32-LABEL: foo: 7544b020a3SKeith Packard; LE32: # %bb.0: 7644b020a3SKeith Packard; LE32-NEXT: mflr 0 7744b020a3SKeith Packard; LE32-NEXT: stwu 1, -32(1) 7844b020a3SKeith Packard; LE32-NEXT: lwz 3, 500(2) 7944b020a3SKeith Packard; LE32-NEXT: slwi 4, 4, 2 8044b020a3SKeith Packard; LE32-NEXT: addi 4, 4, 15 8144b020a3SKeith Packard; LE32-NEXT: stw 31, 28(1) 8244b020a3SKeith Packard; LE32-NEXT: mr 31, 1 8344b020a3SKeith Packard; LE32-NEXT: rlwinm 4, 4, 0, 0, 27 8444b020a3SKeith Packard; LE32-NEXT: stw 0, 36(1) 8544b020a3SKeith Packard; LE32-NEXT: neg 4, 4 8644b020a3SKeith Packard; LE32-NEXT: stw 3, 24(31) 8744b020a3SKeith Packard; LE32-NEXT: addi 3, 31, 32 8844b020a3SKeith Packard; LE32-NEXT: stwux 3, 1, 4 8944b020a3SKeith Packard; LE32-NEXT: addi 3, 1, 16 9044b020a3SKeith Packard; LE32-NEXT: bl baz 9144b020a3SKeith Packard; LE32-NEXT: lwz 3, 24(31) 9244b020a3SKeith Packard; LE32-NEXT: lwz 4, 500(2) 9344b020a3SKeith Packard; LE32-NEXT: cmplw 4, 3 9444b020a3SKeith Packard; LE32-NEXT: bne 0, .LBB0_2 9544b020a3SKeith Packard; LE32-NEXT: # %bb.1: 9644b020a3SKeith Packard; LE32-NEXT: lwz 31, 0(1) 9744b020a3SKeith Packard; LE32-NEXT: lwz 0, -4(31) 9844b020a3SKeith Packard; LE32-NEXT: mr 1, 31 9944b020a3SKeith Packard; LE32-NEXT: mr 31, 0 10044b020a3SKeith Packard; LE32-NEXT: lwz 0, 4(1) 10144b020a3SKeith Packard; LE32-NEXT: mtlr 0 10244b020a3SKeith Packard; LE32-NEXT: blr 10344b020a3SKeith Packard; LE32-NEXT: .LBB0_2: 10444b020a3SKeith Packard; LE32-NEXT: bl __stack_chk_fail 10544b020a3SKeith Packard %vla = alloca i32, i64 %t, align 4 10644b020a3SKeith Packard call void @baz(ptr %vla) 10744b020a3SKeith Packard ret void 10844b020a3SKeith Packard} 10944b020a3SKeith Packard 11044b020a3SKeith Packarddeclare void @baz(ptr) 11144b020a3SKeith Packard 11244b020a3SKeith Packard!llvm.module.flags = !{!1, !2} 11344b020a3SKeith Packard!1 = !{i32 2, !"stack-protector-guard", !"tls"} 11444b020a3SKeith Packard!2 = !{i32 2, !"stack-protector-guard-offset", i32 500} 115