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