brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · 9e14ef1 Raw
193 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \3; RUN:   -mcpu=pwr8 < %s | FileCheck %s4; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \5; RUN:   -mcpu=pwr7 < %s | FileCheck %s6; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-aix \7; RUN:   -mcpu=pwr7 < %s | FileCheck %s --check-prefix=CHECK-AIX648 9declare i64 @llvm.ppc.mfspr.i64(i32 immarg)10declare void @llvm.ppc.mtspr.i64(i32 immarg, i64)11 12@ula = external local_unnamed_addr global i64, align 813 14define dso_local i64 @test_mfxer() {15; CHECK-LABEL: test_mfxer:16; CHECK:       # %bb.0: # %entry17; CHECK-NEXT:    mfxer 318; CHECK-NEXT:    blr19;20; CHECK-AIX64-LABEL: test_mfxer:21; CHECK-AIX64:       # %bb.0: # %entry22; CHECK-AIX64-NEXT:    mfxer 323; CHECK-AIX64-NEXT:    blr24entry:25  %0 = call i64 @llvm.ppc.mfspr.i64(i32 1)26  ret i64 %027}28 29define dso_local i64 @test_mflr() {30; CHECK-LABEL: test_mflr:31; CHECK:       # %bb.0: # %entry32; CHECK-NEXT:    mflr 333; CHECK-NEXT:    blr34;35; CHECK-AIX64-LABEL: test_mflr:36; CHECK-AIX64:       # %bb.0: # %entry37; CHECK-AIX64-NEXT:    mfspr 3, 838; CHECK-AIX64-NEXT:    blr39entry:40  %0 = call i64 @llvm.ppc.mfspr.i64(i32 8)41  ret i64 %042}43 44define dso_local i64 @test_mfctr() {45; CHECK-LABEL: test_mfctr:46; CHECK:       # %bb.0: # %entry47; CHECK-NEXT:    mfctr 348; CHECK-NEXT:    blr49;50; CHECK-AIX64-LABEL: test_mfctr:51; CHECK-AIX64:       # %bb.0: # %entry52; CHECK-AIX64-NEXT:    mfspr 3, 953; CHECK-AIX64-NEXT:    blr54entry:55  %0 = call i64 @llvm.ppc.mfspr.i64(i32 9)56  ret i64 %057}58 59define dso_local i64 @test_mfppr() {60; CHECK-LABEL: test_mfppr:61; CHECK:       # %bb.0: # %entry62; CHECK-NEXT:    mfspr 3, 89663; CHECK-NEXT:    blr64;65; CHECK-AIX64-LABEL: test_mfppr:66; CHECK-AIX64:       # %bb.0: # %entry67; CHECK-AIX64-NEXT:    mfspr 3, 89668; CHECK-AIX64-NEXT:    blr69entry:70  %0 = call i64 @llvm.ppc.mfspr.i64(i32 896)71  ret i64 %072}73 74define dso_local i64 @test_mfppr32() {75; CHECK-LABEL: test_mfppr32:76; CHECK:       # %bb.0: # %entry77; CHECK-NEXT:    mfspr 3, 89878; CHECK-NEXT:    blr79;80; CHECK-AIX64-LABEL: test_mfppr32:81; CHECK-AIX64:       # %bb.0: # %entry82; CHECK-AIX64-NEXT:    mfspr 3, 89883; CHECK-AIX64-NEXT:    blr84entry:85  %0 = call i64 @llvm.ppc.mfspr.i64(i32 898)86  ret i64 %087}88 89define dso_local void @test_mtxer() {90; CHECK-LABEL: test_mtxer:91; CHECK:       # %bb.0: # %entry92; CHECK-NEXT:    addis 3, 2, .LC0@toc@ha93; CHECK-NEXT:    ld 3, .LC0@toc@l(3)94; CHECK-NEXT:    ld 3, 0(3)95; CHECK-NEXT:    mtxer 396; CHECK-NEXT:    blr97;98; CHECK-AIX64-LABEL: test_mtxer:99; CHECK-AIX64:       # %bb.0: # %entry100; CHECK-AIX64-NEXT:    ld 3, L..C0(2) # @ula101; CHECK-AIX64-NEXT:    ld 3, 0(3)102; CHECK-AIX64-NEXT:    mtxer 3103; CHECK-AIX64-NEXT:    blr104entry:105  %0 = load i64, ptr @ula, align 8106  tail call void @llvm.ppc.mtspr.i64(i32 1, i64 %0)107  ret void108}109 110define dso_local void @test_mtlr() {111; CHECK-LABEL: test_mtlr:112; CHECK:       # %bb.0: # %entry113; CHECK-NEXT:    addis 3, 2, .LC0@toc@ha114; CHECK-NEXT:    ld 3, .LC0@toc@l(3)115; CHECK-NEXT:    ld 3, 0(3)116; CHECK-NEXT:    mtlr 3117; CHECK-NEXT:    blr118;119; CHECK-AIX64-LABEL: test_mtlr:120; CHECK-AIX64:       # %bb.0: # %entry121; CHECK-AIX64-NEXT:    ld 3, L..C0(2) # @ula122; CHECK-AIX64-NEXT:    ld 3, 0(3)123; CHECK-AIX64-NEXT:    mtspr 8, 3124; CHECK-AIX64-NEXT:    blr125entry:126  %0 = load i64, ptr @ula, align 8127  tail call void @llvm.ppc.mtspr.i64(i32 8, i64 %0)128  ret void129}130 131define dso_local void @test_mtctr() {132; CHECK-LABEL: test_mtctr:133; CHECK:       # %bb.0: # %entry134; CHECK-NEXT:    addis 3, 2, .LC0@toc@ha135; CHECK-NEXT:    ld 3, .LC0@toc@l(3)136; CHECK-NEXT:    ld 3, 0(3)137; CHECK-NEXT:    mtctr 3138; CHECK-NEXT:    blr139;140; CHECK-AIX64-LABEL: test_mtctr:141; CHECK-AIX64:       # %bb.0: # %entry142; CHECK-AIX64-NEXT:    ld 3, L..C0(2) # @ula143; CHECK-AIX64-NEXT:    ld 3, 0(3)144; CHECK-AIX64-NEXT:    mtspr 9, 3145; CHECK-AIX64-NEXT:    blr146entry:147  %0 = load i64, ptr @ula, align 8148  tail call void @llvm.ppc.mtspr.i64(i32 9, i64 %0)149  ret void150}151 152define dso_local void @test_mtppr() {153; CHECK-LABEL: test_mtppr:154; CHECK:       # %bb.0: # %entry155; CHECK-NEXT:    addis 3, 2, .LC0@toc@ha156; CHECK-NEXT:    ld 3, .LC0@toc@l(3)157; CHECK-NEXT:    ld 3, 0(3)158; CHECK-NEXT:    mtspr 896, 3159; CHECK-NEXT:    blr160;161; CHECK-AIX64-LABEL: test_mtppr:162; CHECK-AIX64:       # %bb.0: # %entry163; CHECK-AIX64-NEXT:    ld 3, L..C0(2) # @ula164; CHECK-AIX64-NEXT:    ld 3, 0(3)165; CHECK-AIX64-NEXT:    mtspr 896, 3166; CHECK-AIX64-NEXT:    blr167entry:168  %0 = load i64, ptr @ula, align 8169  tail call void @llvm.ppc.mtspr.i64(i32 896, i64 %0)170  ret void171}172 173define dso_local void @test_mtppr32() {174; CHECK-LABEL: test_mtppr32:175; CHECK:       # %bb.0: # %entry176; CHECK-NEXT:    addis 3, 2, .LC0@toc@ha177; CHECK-NEXT:    ld 3, .LC0@toc@l(3)178; CHECK-NEXT:    ld 3, 0(3)179; CHECK-NEXT:    mtspr 898, 3180; CHECK-NEXT:    blr181;182; CHECK-AIX64-LABEL: test_mtppr32:183; CHECK-AIX64:       # %bb.0: # %entry184; CHECK-AIX64-NEXT:    ld 3, L..C0(2) # @ula185; CHECK-AIX64-NEXT:    ld 3, 0(3)186; CHECK-AIX64-NEXT:    mtspr 898, 3187; CHECK-AIX64-NEXT:    blr188entry:189  %0 = load i64, ptr @ula, align 8190  tail call void @llvm.ppc.mtspr.i64(i32 898, i64 %0)191  ret void192}193