1*ad4a582fSAlex Rønne Petersen; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2*ad4a582fSAlex Rønne Petersen; RUN: llc < %s -mtriple powerpc | FileCheck %s -check-prefixes=CHECK-32-BE 3*ad4a582fSAlex Rønne Petersen; RUN: llc < %s -mtriple powerpcle | FileCheck %s -check-prefixes=CHECK-32-LE 4*ad4a582fSAlex Rønne Petersen; RUN: llc < %s -mtriple powerpc64 | FileCheck %s -check-prefixes=CHECK-64-BE 5*ad4a582fSAlex Rønne Petersen; RUN: llc < %s -mtriple powerpc64le | FileCheck %s -check-prefixes=CHECK-64-LE 6*ad4a582fSAlex Rønne Petersen 7*ad4a582fSAlex Rønne Petersendeclare dso_local void @main() 8*ad4a582fSAlex Rønne Petersen 9*ad4a582fSAlex Rønne Petersendefine dso_local void @naked() naked "frame-pointer"="all" { 10*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-LABEL: naked: 11*ad4a582fSAlex Rønne Petersen; CHECK-32-BE: # %bb.0: 12*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: bl main 13*ad4a582fSAlex Rønne Petersen; 14*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-LABEL: naked: 15*ad4a582fSAlex Rønne Petersen; CHECK-32-LE: # %bb.0: 16*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: bl main 17*ad4a582fSAlex Rønne Petersen; 18*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-LABEL: naked: 19*ad4a582fSAlex Rønne Petersen; CHECK-64-BE: # %bb.0: 20*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: bl main 21*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: nop 22*ad4a582fSAlex Rønne Petersen; 23*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-LABEL: naked: 24*ad4a582fSAlex Rønne Petersen; CHECK-64-LE: # %bb.0: 25*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: bl main 26*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: nop 27*ad4a582fSAlex Rønne Petersen call void @main() 28*ad4a582fSAlex Rønne Petersen unreachable 29*ad4a582fSAlex Rønne Petersen} 30*ad4a582fSAlex Rønne Petersen 31*ad4a582fSAlex Rønne Petersendefine dso_local void @normal() "frame-pointer"="all" { 32*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-LABEL: normal: 33*ad4a582fSAlex Rønne Petersen; CHECK-32-BE: # %bb.0: 34*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: mflr 0 35*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: stwu 1, -16(1) 36*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: stw 31, 12(1) 37*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: stw 0, 20(1) 38*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: .cfi_def_cfa_offset 16 39*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: .cfi_offset r31, -4 40*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: .cfi_offset lr, 4 41*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: mr 31, 1 42*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: .cfi_def_cfa_register r31 43*ad4a582fSAlex Rønne Petersen; CHECK-32-BE-NEXT: bl main 44*ad4a582fSAlex Rønne Petersen; 45*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-LABEL: normal: 46*ad4a582fSAlex Rønne Petersen; CHECK-32-LE: # %bb.0: 47*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: mflr 0 48*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: stwu 1, -16(1) 49*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: stw 31, 12(1) 50*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: stw 0, 20(1) 51*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: .cfi_def_cfa_offset 16 52*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: .cfi_offset r31, -4 53*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: .cfi_offset lr, 4 54*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: mr 31, 1 55*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: .cfi_def_cfa_register r31 56*ad4a582fSAlex Rønne Petersen; CHECK-32-LE-NEXT: bl main 57*ad4a582fSAlex Rønne Petersen; 58*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-LABEL: normal: 59*ad4a582fSAlex Rønne Petersen; CHECK-64-BE: # %bb.0: 60*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: mflr 0 61*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: std 31, -8(1) 62*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: stdu 1, -128(1) 63*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: std 0, 144(1) 64*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: .cfi_def_cfa_offset 128 65*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: .cfi_offset r31, -8 66*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: .cfi_offset lr, 16 67*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: mr 31, 1 68*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: .cfi_def_cfa_register r31 69*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: bl main 70*ad4a582fSAlex Rønne Petersen; CHECK-64-BE-NEXT: nop 71*ad4a582fSAlex Rønne Petersen; 72*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-LABEL: normal: 73*ad4a582fSAlex Rønne Petersen; CHECK-64-LE: # %bb.0: 74*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: mflr 0 75*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: std 31, -8(1) 76*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: stdu 1, -48(1) 77*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: std 0, 64(1) 78*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: .cfi_def_cfa_offset 48 79*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: .cfi_offset r31, -8 80*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: .cfi_offset lr, 16 81*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: mr 31, 1 82*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: .cfi_def_cfa_register r31 83*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: bl main 84*ad4a582fSAlex Rønne Petersen; CHECK-64-LE-NEXT: nop 85*ad4a582fSAlex Rønne Petersen call void @main() 86*ad4a582fSAlex Rønne Petersen unreachable 87*ad4a582fSAlex Rønne Petersen} 88