You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.207
Former-commit-id: 3b152f462918d427ce18620a2cbe4f8b79650449
This commit is contained in:
parent
8e12397d70
commit
eb85e2fc17
@ -1,277 +0,0 @@
|
||||
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s
|
||||
|
||||
@vda = common global <2 x double> zeroinitializer, align 16
|
||||
@vdb = common global <2 x double> zeroinitializer, align 16
|
||||
@vdr = common global <2 x double> zeroinitializer, align 16
|
||||
@vfa = common global <4 x float> zeroinitializer, align 16
|
||||
@vfb = common global <4 x float> zeroinitializer, align 16
|
||||
@vfr = common global <4 x float> zeroinitializer, align 16
|
||||
@vbllr = common global <2 x i64> zeroinitializer, align 16
|
||||
@vbir = common global <4 x i32> zeroinitializer, align 16
|
||||
@vblla = common global <2 x i64> zeroinitializer, align 16
|
||||
@vbllb = common global <2 x i64> zeroinitializer, align 16
|
||||
@vbia = common global <4 x i32> zeroinitializer, align 16
|
||||
@vbib = common global <4 x i32> zeroinitializer, align 16
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test1() {
|
||||
entry:
|
||||
%0 = load <2 x double>, <2 x double>* @vda, align 16
|
||||
%1 = load <2 x double>, <2 x double>* @vdb, align 16
|
||||
%2 = call <2 x double> @llvm.ppc.vsx.xvdivdp(<2 x double> %0, <2 x double> %1)
|
||||
store <2 x double> %2, <2 x double>* @vdr, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test1
|
||||
; CHECK: xvdivdp {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test2() {
|
||||
entry:
|
||||
%0 = load <4 x float>, <4 x float>* @vfa, align 16
|
||||
%1 = load <4 x float>, <4 x float>* @vfb, align 16
|
||||
%2 = call <4 x float> @llvm.ppc.vsx.xvdivsp(<4 x float> %0, <4 x float> %1)
|
||||
store <4 x float> %2, <4 x float>* @vfr, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test2
|
||||
; CHECK: xvdivsp {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test3() {
|
||||
entry:
|
||||
%0 = load <2 x double>, <2 x double>* @vda, align 16
|
||||
%1 = load <2 x double>, <2 x double>* @vda, align 16
|
||||
%2 = call <2 x double> @llvm.ceil.v2f64(<2 x double> %1)
|
||||
store <2 x double> %2, <2 x double>* @vdr, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test3
|
||||
; CHECK: xvrdpip {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test4() {
|
||||
entry:
|
||||
%0 = load <4 x float>, <4 x float>* @vfa, align 16
|
||||
%1 = load <4 x float>, <4 x float>* @vfa, align 16
|
||||
%2 = call <4 x float> @llvm.ceil.v4f32(<4 x float> %1)
|
||||
store <4 x float> %2, <4 x float>* @vfr, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test4
|
||||
; CHECK: xvrspip {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test5() {
|
||||
entry:
|
||||
%0 = load <2 x double>, <2 x double>* @vda, align 16
|
||||
%1 = load <2 x double>, <2 x double>* @vdb, align 16
|
||||
%2 = call <2 x i64> @llvm.ppc.vsx.xvcmpeqdp(<2 x double> %0, <2 x double> %1)
|
||||
store <2 x i64> %2, <2 x i64>* @vbllr, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test5
|
||||
; CHECK: xvcmpeqdp {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test6() {
|
||||
entry:
|
||||
%0 = load <4 x float>, <4 x float>* @vfa, align 16
|
||||
%1 = load <4 x float>, <4 x float>* @vfb, align 16
|
||||
%2 = call <4 x i32> @llvm.ppc.vsx.xvcmpeqsp(<4 x float> %0, <4 x float> %1)
|
||||
store <4 x i32> %2, <4 x i32>* @vbir, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test6
|
||||
; CHECK: xvcmpeqsp {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test7() {
|
||||
entry:
|
||||
%0 = load <2 x double>, <2 x double>* @vda, align 16
|
||||
%1 = load <2 x double>, <2 x double>* @vdb, align 16
|
||||
%2 = call <2 x i64> @llvm.ppc.vsx.xvcmpgedp(<2 x double> %0, <2 x double> %1)
|
||||
store <2 x i64> %2, <2 x i64>* @vbllr, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test7
|
||||
; CHECK: xvcmpgedp {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test8() {
|
||||
entry:
|
||||
%0 = load <4 x float>, <4 x float>* @vfa, align 16
|
||||
%1 = load <4 x float>, <4 x float>* @vfb, align 16
|
||||
%2 = call <4 x i32> @llvm.ppc.vsx.xvcmpgesp(<4 x float> %0, <4 x float> %1)
|
||||
store <4 x i32> %2, <4 x i32>* @vbir, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test8
|
||||
; CHECK: xvcmpgesp {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test9() {
|
||||
entry:
|
||||
%0 = load <2 x double>, <2 x double>* @vda, align 16
|
||||
%1 = load <2 x double>, <2 x double>* @vdb, align 16
|
||||
%2 = call <2 x i64> @llvm.ppc.vsx.xvcmpgtdp(<2 x double> %0, <2 x double> %1)
|
||||
store <2 x i64> %2, <2 x i64>* @vbllr, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test9
|
||||
; CHECK: xvcmpgtdp {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @test10() {
|
||||
entry:
|
||||
%0 = load <4 x float>, <4 x float>* @vfa, align 16
|
||||
%1 = load <4 x float>, <4 x float>* @vfb, align 16
|
||||
%2 = call <4 x i32> @llvm.ppc.vsx.xvcmpgtsp(<4 x float> %0, <4 x float> %1)
|
||||
store <4 x i32> %2, <4 x i32>* @vbir, align 16
|
||||
ret void
|
||||
; CHECK-LABEL: @test10
|
||||
; CHECK: xvcmpgtsp {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define <4 x float> @emit_xvresp(<4 x float> %a) {
|
||||
entry:
|
||||
%a.addr = alloca <4 x float>, align 16
|
||||
store <4 x float> %a, <4 x float>* %a.addr, align 16
|
||||
%0 = load <4 x float>, <4 x float>* %a.addr, align 16
|
||||
%1 = call <4 x float> @llvm.ppc.vsx.xvresp(<4 x float> %0)
|
||||
ret <4 x float> %1
|
||||
; CHECK-LABEL: @emit_xvresp
|
||||
; CHECK: xvresp {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define <2 x double> @emit_xvredp(<2 x double> %a) {
|
||||
entry:
|
||||
%a.addr = alloca <2 x double>, align 16
|
||||
store <2 x double> %a, <2 x double>* %a.addr, align 16
|
||||
%0 = load <2 x double>, <2 x double>* %a.addr, align 16
|
||||
%1 = call <2 x double> @llvm.ppc.vsx.xvredp(<2 x double> %0)
|
||||
ret <2 x double> %1
|
||||
; CHECK-LABEL: @emit_xvredp
|
||||
; CHECK: xvredp {{[0-9]+}}, {{[0-9]+}}
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
define <4 x i32> @emit_xvcvdpsxws(<2 x double> %a) {
|
||||
entry:
|
||||
%0 = tail call <4 x i32> @llvm.ppc.vsx.xvcvdpsxws(<2 x double> %a)
|
||||
ret <4 x i32> %0
|
||||
; CHECK-LABEL: @emit_xvcvdpsxws
|
||||
; CHECK: xvcvdpsxws 34, 34
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
define <4 x i32> @emit_xvcvdpuxws(<2 x double> %a) {
|
||||
entry:
|
||||
%0 = tail call <4 x i32> @llvm.ppc.vsx.xvcvdpuxws(<2 x double> %a)
|
||||
ret <4 x i32> %0
|
||||
; CHECK-LABEL: @emit_xvcvdpuxws
|
||||
; CHECK: xvcvdpuxws 34, 34
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
define <2 x double> @emit_xvcvsxwdp(<4 x i32> %a) {
|
||||
entry:
|
||||
%0 = tail call <2 x double> @llvm.ppc.vsx.xvcvsxwdp(<4 x i32> %a)
|
||||
ret <2 x double> %0
|
||||
; CHECK-LABEL: @emit_xvcvsxwdp
|
||||
; CHECK: xvcvsxwdp 34, 34
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
define <2 x double> @emit_xvcvuxwdp(<4 x i32> %a) {
|
||||
entry:
|
||||
%0 = tail call <2 x double> @llvm.ppc.vsx.xvcvuxwdp(<4 x i32> %a)
|
||||
ret <2 x double> %0
|
||||
; CHECK-LABEL: @emit_xvcvuxwdp
|
||||
; CHECK: xvcvuxwdp 34, 34
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
define <2 x double> @emit_xvcvspdp(<4 x float> %a) {
|
||||
entry:
|
||||
%0 = tail call <2 x double> @llvm.ppc.vsx.xvcvspdp(<4 x float> %a)
|
||||
ret <2 x double> %0
|
||||
; CHECK-LABEL: @emit_xvcvspdp
|
||||
; CHECK: xvcvspdp 34, 34
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
define <4 x float> @emit_xvcvsxdsp(<2 x i64> %a) {
|
||||
entry:
|
||||
%0 = tail call <4 x float> @llvm.ppc.vsx.xvcvsxdsp(<2 x i64> %a)
|
||||
ret <4 x float> %0
|
||||
; CHECK-LABEL: @emit_xvcvsxdsp
|
||||
; CHECK: xvcvsxdsp 34, 34
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
define <4 x float> @emit_xvcvuxdsp(<2 x i64> %a) {
|
||||
entry:
|
||||
%0 = tail call <4 x float> @llvm.ppc.vsx.xvcvuxdsp(<2 x i64> %a)
|
||||
ret <4 x float> %0
|
||||
; CHECK-LABEL: @emit_xvcvuxdsp
|
||||
; CHECK: xvcvuxdsp 34, 34
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
define <4 x float> @emit_xvcvdpsp(<2 x double> %a) {
|
||||
entry:
|
||||
%0 = tail call <4 x float> @llvm.ppc.vsx.xvcvdpsp(<2 x double> %a)
|
||||
ret <4 x float> %0
|
||||
; CHECK-LABEL: @emit_xvcvdpsp
|
||||
; CHECK: xvcvdpsp 34, 34
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <4 x float> @llvm.ppc.vsx.xvresp(<4 x float>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <2 x double> @llvm.ppc.vsx.xvredp(<2 x double>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <2 x double> @llvm.ceil.v2f64(<2 x double>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <4 x float> @llvm.ceil.v4f32(<4 x float>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <2 x double> @llvm.ppc.vsx.xvdivdp(<2 x double>, <2 x double>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <4 x float> @llvm.ppc.vsx.xvdivsp(<4 x float>, <4 x float>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <2 x i64> @llvm.ppc.vsx.xvcmpeqdp(<2 x double>, <2 x double>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <4 x i32> @llvm.ppc.vsx.xvcmpeqsp(<4 x float>, <4 x float>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <2 x i64> @llvm.ppc.vsx.xvcmpgedp(<2 x double>, <2 x double>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <4 x i32> @llvm.ppc.vsx.xvcmpgesp(<4 x float>, <4 x float>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <2 x i64> @llvm.ppc.vsx.xvcmpgtdp(<2 x double>, <2 x double>)
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare <4 x i32> @llvm.ppc.vsx.xvcmpgtsp(<4 x float>, <4 x float>)
|
||||
declare <4 x float> @llvm.ppc.vsx.xvcvdpsp(<2 x double>) #1
|
||||
declare <4 x i32> @llvm.ppc.vsx.xvcvdpsxws(<2 x double>) #1
|
||||
declare <4 x i32> @llvm.ppc.vsx.xvcvdpuxws(<2 x double>) #1
|
||||
declare <2 x double> @llvm.ppc.vsx.xvcvsxwdp(<4 x i32>) #1
|
||||
declare <2 x double> @llvm.ppc.vsx.xvcvuxwdp(<4 x i32>) #1
|
||||
declare <2 x double> @llvm.ppc.vsx.xvcvspdp(<4 x float>) #1
|
||||
declare <4 x float> @llvm.ppc.vsx.xvcvsxdsp(<2 x i64>) #1
|
||||
declare <4 x float> @llvm.ppc.vsx.xvcvuxdsp(<2 x i64>) #1
|
Reference in New Issue
Block a user