xref: /llvm-project/llvm/test/CodeGen/PowerPC/vec_minmax.ll (revision a538b0f023e858d0f71a1295bb9084e851ddd361)
10cfa7b7aSKit Barton; Test the vector min/max doubleword instructions added for P8
2*a538b0f0SEhsan Amiri; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s
3*a538b0f0SEhsan Amiri; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s
40cfa7b7aSKit Barton
50cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vmaxsd(<2 x i64>, <2 x i64>) nounwind readnone
60cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vmaxud(<2 x i64>, <2 x i64>) nounwind readnone
70cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vminsd(<2 x i64>, <2 x i64>) nounwind readnone
80cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vminud(<2 x i64>, <2 x i64>) nounwind readnone
90cfa7b7aSKit Barton
100cfa7b7aSKit Bartondefine <2 x i64> @test_vmaxsd(<2 x i64> %x, <2 x i64> %y) {
110cfa7b7aSKit Barton       %tmp = tail call <2 x i64> @llvm.ppc.altivec.vmaxsd(<2 x i64> %x, <2 x i64> %y)
120cfa7b7aSKit Barton       ret <2 x i64> %tmp
130cfa7b7aSKit Barton; CHECK: vmaxsd 2, 2, 3
140cfa7b7aSKit Barton}
150cfa7b7aSKit Barton
160cfa7b7aSKit Bartondefine <2 x i64> @test_vmaxud(<2 x i64> %x, <2 x i64> %y) {
170cfa7b7aSKit Barton       %tmp = tail call <2 x i64> @llvm.ppc.altivec.vmaxud(<2 x i64> %x, <2 x i64> %y)
180cfa7b7aSKit Barton       ret <2 x i64> %tmp
190cfa7b7aSKit Barton; CHECK: vmaxud 2, 2, 3
200cfa7b7aSKit Barton}
210cfa7b7aSKit Barton
220cfa7b7aSKit Bartondefine <2 x i64> @test_vminsd(<2 x i64> %x, <2 x i64> %y) {
230cfa7b7aSKit Barton       %tmp = tail call <2 x i64> @llvm.ppc.altivec.vminsd(<2 x i64> %x, <2 x i64> %y)
240cfa7b7aSKit Barton       ret <2 x i64> %tmp
250cfa7b7aSKit Barton; CHECK: vminsd 2, 2, 3
260cfa7b7aSKit Barton}
270cfa7b7aSKit Barton
280cfa7b7aSKit Bartondefine <2 x i64> @test_vminud(<2 x i64> %x, <2 x i64> %y) {
290cfa7b7aSKit Barton       %tmp = tail call <2 x i64> @llvm.ppc.altivec.vminud(<2 x i64> %x, <2 x i64> %y)
300cfa7b7aSKit Barton       ret <2 x i64> %tmp
310cfa7b7aSKit Barton; CHECK: vminud 2, 2, 3
320cfa7b7aSKit Barton}
330cfa7b7aSKit Barton
340cfa7b7aSKit Barton
35