81 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-unknown \3; RUN: --ppc-asm-full-reg-names -mcpu=pwr7 < %s | FileCheck %s4; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \5; RUN: --ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck %s6; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-aix \7; RUN: --ppc-asm-full-reg-names -mcpu=pwr7 < %s | FileCheck %s8 9define dso_local i64 @test_builtin_ppc_popcntb_i64(i64 %a) local_unnamed_addr {10; CHECK-LABEL: test_builtin_ppc_popcntb_i64:11; CHECK: # %bb.0: # %entry12; CHECK-NEXT: popcntb r3, r313; CHECK-NEXT: blr14entry:15 %popcntb = tail call i64 @llvm.ppc.popcntb.i64.i64(i64 %a)16 ret i64 %popcntb17}18declare i64 @llvm.ppc.popcntb.i64.i64(i64)19 20define dso_local void @test_builtin_ppc_eieio() {21; CHECK-LABEL: test_builtin_ppc_eieio:22; CHECK: # %bb.0: # %entry23; CHECK-NEXT: ori r2, r2, 024; CHECK-NEXT: ori r2, r2, 025; CHECK-NEXT: eieio26; CHECK-NEXT: blr27entry:28 call void @llvm.ppc.eieio()29 ret void30}31declare void @llvm.ppc.eieio()32 33define dso_local void @test_builtin_ppc_iospace_eieio() {34; CHECK-LABEL: test_builtin_ppc_iospace_eieio:35; CHECK: # %bb.0: # %entry36; CHECK-NEXT: ori r2, r2, 037; CHECK-NEXT: ori r2, r2, 038; CHECK-NEXT: eieio39; CHECK-NEXT: blr40entry:41 call void @llvm.ppc.iospace.eieio()42 ret void43}44declare void @llvm.ppc.iospace.eieio()45 46define dso_local void @test_builtin_ppc_iospace_lwsync() {47; CHECK-LABEL: test_builtin_ppc_iospace_lwsync:48; CHECK: # %bb.0: # %entry49; CHECK-NEXT: lwsync50; CHECK-NEXT: blr51entry:52 call void @llvm.ppc.iospace.lwsync()53 ret void54}55declare void @llvm.ppc.iospace.lwsync()56 57define dso_local void @test_builtin_ppc_iospace_sync() {58; CHECK-LABEL: test_builtin_ppc_iospace_sync:59; CHECK: # %bb.0: # %entry60; CHECK-NEXT: sync61; CHECK-NEXT: blr62entry:63 call void @llvm.ppc.iospace.sync()64 ret void65}66declare void @llvm.ppc.iospace.sync()67 68define dso_local void @test_builtin_ppc_icbt() {69; CHECK-LABEL: test_builtin_ppc_icbt:70; CHECK: # %bb.0: # %entry71; CHECK-NEXT: ld r3, -8(r1)72; CHECK-NEXT: icbt 0, 0, r373; CHECK-NEXT: blr74entry:75 %a = alloca ptr, align 876 %0 = load ptr, ptr %a, align 877 call void @llvm.ppc.icbt(ptr %0)78 ret void79}80declare void @llvm.ppc.icbt(ptr)81