124 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-aix \3; RUN: -mcpu=pwr7 < %s | FileCheck %s4 5declare i32 @llvm.ppc.mfspr.i32(i32 immarg)6declare void @llvm.ppc.mtspr.i32(i32 immarg, i32)7 8@ula = external dso_local global i32, align 49 10define dso_local i32 @test_mfxer() {11; CHECK-LABEL: test_mfxer:12; CHECK: # %bb.0: # %entry13; CHECK-NEXT: mfxer 314; CHECK-NEXT: blr15entry:16 %0 = call i32 @llvm.ppc.mfspr.i32(i32 1)17 ret i32 %018}19 20define dso_local i32 @test_mflr() {21; CHECK-LABEL: test_mflr:22; CHECK: # %bb.0: # %entry23; CHECK-NEXT: mfspr 3, 824; CHECK-NEXT: blr25entry:26 %0 = call i32 @llvm.ppc.mfspr.i32(i32 8)27 ret i32 %028}29 30define dso_local i32 @test_mfctr() {31; CHECK-LABEL: test_mfctr:32; CHECK: # %bb.0: # %entry33; CHECK-NEXT: mfspr 3, 934; CHECK-NEXT: blr35entry:36 %0 = call i32 @llvm.ppc.mfspr.i32(i32 9)37 ret i32 %038}39 40define dso_local i32 @test_mfppr() {41; CHECK-LABEL: test_mfppr:42; CHECK: # %bb.0: # %entry43; CHECK-NEXT: mfspr 3, 89644; CHECK-NEXT: blr45entry:46 %0 = call i32 @llvm.ppc.mfspr.i32(i32 896)47 ret i32 %048}49 50define dso_local i32 @test_mfppr32() {51; CHECK-LABEL: test_mfppr32:52; CHECK: # %bb.0: # %entry53; CHECK-NEXT: mfspr 3, 89854; CHECK-NEXT: blr55entry:56 %0 = call i32 @llvm.ppc.mfspr.i32(i32 898)57 ret i32 %058}59 60define dso_local void @test_mtxer() {61; CHECK-LABEL: test_mtxer:62; CHECK: # %bb.0: # %entry63; CHECK-NEXT: lwz 3, L..C0(2) # @ula64; CHECK-NEXT: lwz 3, 0(3)65; CHECK-NEXT: mtxer 366; CHECK-NEXT: blr67entry:68 %0 = load i32, ptr @ula, align 869 tail call void @llvm.ppc.mtspr.i32(i32 1, i32 %0)70 ret void71}72 73define dso_local void @test_mtlr() {74; CHECK-LABEL: test_mtlr:75; CHECK: # %bb.0: # %entry76; CHECK-NEXT: lwz 3, L..C0(2) # @ula77; CHECK-NEXT: lwz 3, 0(3)78; CHECK-NEXT: mtspr 8, 379; CHECK-NEXT: blr80entry:81 %0 = load i32, ptr @ula, align 882 tail call void @llvm.ppc.mtspr.i32(i32 8, i32 %0)83 ret void84}85 86define dso_local void @test_mtctr() {87; CHECK-LABEL: test_mtctr:88; CHECK: # %bb.0: # %entry89; CHECK-NEXT: lwz 3, L..C0(2) # @ula90; CHECK-NEXT: lwz 3, 0(3)91; CHECK-NEXT: mtspr 9, 392; CHECK-NEXT: blr93entry:94 %0 = load i32, ptr @ula, align 895 tail call void @llvm.ppc.mtspr.i32(i32 9, i32 %0)96 ret void97}98 99define dso_local void @test_mtppr() {100; CHECK-LABEL: test_mtppr:101; CHECK: # %bb.0: # %entry102; CHECK-NEXT: lwz 3, L..C0(2) # @ula103; CHECK-NEXT: lwz 3, 0(3)104; CHECK-NEXT: mtspr 896, 3105; CHECK-NEXT: blr106entry:107 %0 = load i32, ptr @ula, align 8108 tail call void @llvm.ppc.mtspr.i32(i32 896, i32 %0)109 ret void110}111 112define dso_local void @test_mtppr32() {113; CHECK-LABEL: test_mtppr32:114; CHECK: # %bb.0: # %entry115; CHECK-NEXT: lwz 3, L..C0(2) # @ula116; CHECK-NEXT: lwz 3, 0(3)117; CHECK-NEXT: mtspr 898, 3118; CHECK-NEXT: blr119entry:120 %0 = load i32, ptr @ula, align 8121 tail call void @llvm.ppc.mtspr.i32(i32 898, i32 %0)122 ret void123}124