brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · b216d3b Raw
99 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \2; RUN:   -mcpu=pwr8 < %s | FileCheck %s --check-prefix=CHECK-64B3; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \4; RUN:   -mcpu=pwr7 < %s | FileCheck %s --check-prefix=CHECK-64B5; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-aix \6; RUN:   -mcpu=pwr7 < %s | FileCheck %s --check-prefix=CHECK-32B7; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-aix \8; RUN:   -mcpu=pwr7 < %s | FileCheck %s --check-prefix=CHECK-64B9 10@us = external global i16, align 211@us_addr = external global ptr, align 812@ui = external global i32, align 413@ui_addr = external global ptr, align 814 15define dso_local void @test_builtin_ppc_store2r() {16; CHECK-64B-LABEL: test_builtin_ppc_store2r:17; CHECK-64B:         sthbrx 3, 0, 418; CHECK-64B-NEXT:    blr19 20; CHECK-32B-LABEL: test_builtin_ppc_store2r:21; CHECK-32B:         sthbrx 3, 0, 422; CHECK-32B-NEXT:    blr23entry:24  %0 = load i16, ptr @us, align 225  %conv = zext i16 %0 to i3226  %1 = load ptr, ptr @us_addr, align 827  call void @llvm.ppc.store2r(i32 %conv, ptr %1)28  ret void29}30 31declare void @llvm.ppc.store2r(i32, ptr)32 33define dso_local void @test_builtin_ppc_store4r() {34; CHECK-64B-LABEL: test_builtin_ppc_store4r:35; CHECK-64B:         stwbrx 3, 0, 436; CHECK-64B-NEXT:    blr37 38; CHECK-32B-LABEL: test_builtin_ppc_store4r:39; CHECK-32B:         stwbrx 3, 0, 440; CHECK-32B-NEXT:    blr41entry:42  %0 = load i32, ptr @ui, align 443  %1 = load ptr, ptr @ui_addr, align 844  call void @llvm.ppc.store4r(i32 %0, ptr %1)45  ret void46}47 48declare void @llvm.ppc.store4r(i32, ptr)49 50define dso_local zeroext i16 @test_builtin_ppc_load2r() {51; CHECK-64B-LABEL: test_builtin_ppc_load2r:52; CHECK-64B:         lhbrx 3, 0, 353; CHECK-64B-NEXT:    blr54 55; CHECK-32B-LABEL: test_builtin_ppc_load2r:56; CHECK-32B:         lhbrx 3, 0, 357; CHECK-32B-NEXT:    blr58entry:59  %0 = load ptr, ptr @us_addr, align 860  %1 = call i32 @llvm.ppc.load2r(ptr %0)61  %conv = trunc i32 %1 to i1662  ret i16 %conv63}64 65define dso_local signext i16 @test_builtin_ppc_load2r_signext() {66; CHECK-64B-LABEL: test_builtin_ppc_load2r_signext:67; CHECK-64B:         lhbrx 3, 0, 368; CHECK-64B-NEXT:    extsh 3, 369; CHECK-64B-NEXT:    blr70 71; CHECK-32B-LABEL: test_builtin_ppc_load2r_signext:72; CHECK-32B:         lhbrx 3, 0, 373; CHECK-32B-NEXT:    extsh 3, 374; CHECK-32B-NEXT:    blr75entry:76  %0 = load ptr, ptr @us_addr, align 877  %1 = call i32 @llvm.ppc.load2r(ptr %0)78  %conv = trunc i32 %1 to i1679  ret i16 %conv80}81 82declare i32 @llvm.ppc.load2r(ptr)83 84define dso_local zeroext i32 @test_builtin_ppc_load4r() {85; CHECK-64B-LABEL: test_builtin_ppc_load4r:86; CHECK-64B:         lwbrx 3, 0, 387; CHECK-64B-NEXT:    blr88 89; CHECK-32B-LABEL: test_builtin_ppc_load4r:90; CHECK-32B:         lwbrx 3, 0, 391; CHECK-32B-NEXT:    blr92entry:93  %0 = load ptr, ptr @ui_addr, align 894  %1 = call i32 @llvm.ppc.load4r(ptr %0)95  ret i32 %196}97 98declare i32 @llvm.ppc.load4r(ptr)99