10cfa7b7aSKit Barton; Check the vector multiply even/odd word instructions that were added in P8 20cfa7b7aSKit Barton; 3*a538b0f0SEhsan Amiri; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s 4*a538b0f0SEhsan Amiri; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s 50cfa7b7aSKit Barton 60cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vmuleuw(<4 x i32>, <4 x i32>) nounwind readnone 70cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vmulesw(<4 x i32>, <4 x i32>) nounwind readnone 80cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vmulouw(<4 x i32>, <4 x i32>) nounwind readnone 90cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vmulosw(<4 x i32>, <4 x i32>) nounwind readnone 100cfa7b7aSKit Bartondeclare <4 x i32> @llvm.ppc.altivec.vmuluwm(<4 x i32>, <4 x i32>) nounwind readnone 110cfa7b7aSKit Barton 120cfa7b7aSKit Bartondefine <2 x i64> @test_vmuleuw(<4 x i32> %x, <4 x i32> %y) nounwind readnone { 130cfa7b7aSKit Barton %tmp = tail call <2 x i64> @llvm.ppc.altivec.vmuleuw(<4 x i32> %x, <4 x i32> %y) 140cfa7b7aSKit Barton ret <2 x i64> %tmp 150cfa7b7aSKit Barton; CHECK: vmuleuw 2, 2, 3 160cfa7b7aSKit Barton} 170cfa7b7aSKit Barton 180cfa7b7aSKit Bartondefine <2 x i64> @test_vmulesw(<4 x i32> %x, <4 x i32> %y) nounwind readnone { 190cfa7b7aSKit Barton %tmp = tail call <2 x i64> @llvm.ppc.altivec.vmulesw(<4 x i32> %x, <4 x i32> %y) 200cfa7b7aSKit Barton ret <2 x i64> %tmp 210cfa7b7aSKit Barton; CHECK: vmulesw 2, 2, 3 220cfa7b7aSKit Barton} 230cfa7b7aSKit Barton 240cfa7b7aSKit Bartondefine <2 x i64> @test_vmulouw(<4 x i32> %x, <4 x i32> %y) nounwind readnone { 250cfa7b7aSKit Barton %tmp = tail call <2 x i64> @llvm.ppc.altivec.vmulouw(<4 x i32> %x, <4 x i32> %y) 260cfa7b7aSKit Barton ret <2 x i64> %tmp 270cfa7b7aSKit Barton; CHECK: vmulouw 2, 2, 3 280cfa7b7aSKit Barton} 290cfa7b7aSKit Barton 300cfa7b7aSKit Bartondefine <2 x i64> @test_vmulosw(<4 x i32> %x, <4 x i32> %y) nounwind readnone { 310cfa7b7aSKit Barton %tmp = tail call <2 x i64> @llvm.ppc.altivec.vmulosw(<4 x i32> %x, <4 x i32> %y) 320cfa7b7aSKit Barton ret <2 x i64> %tmp 330cfa7b7aSKit Barton; CHECK: vmulosw 2, 2, 3 340cfa7b7aSKit Barton} 350cfa7b7aSKit Barton 360cfa7b7aSKit Bartondefine <4 x i32> @test_vmuluwm(<4 x i32> %x, <4 x i32> %y) nounwind readnone { 3720d3981eSKit Barton %tmp = mul <4 x i32> %x, %y 380cfa7b7aSKit Barton ret <4 x i32> %tmp 3920d3981eSKit Barton; CHECK-LABEL: test_vmuluwm 400cfa7b7aSKit Barton; CHECK: vmuluwm 2, 2, 3 410cfa7b7aSKit Barton} 420cfa7b7aSKit Barton 43