1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=-avx,+ssse3 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_x86_ssse3_pabs_b_128(<16 x i8> %a0) { 4*9880d681SAndroid Build Coastguard Worker ; CHECK: pabsb 5*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8> %a0) ; <<16 x i8>> [#uses=1] 6*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 7*9880d681SAndroid Build Coastguard Worker} 8*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8>) nounwind readnone 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_x86_ssse3_pabs_d_128(<4 x i32> %a0) { 12*9880d681SAndroid Build Coastguard Worker ; CHECK: pabsd 13*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32> %a0) ; <<4 x i32>> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 15*9880d681SAndroid Build Coastguard Worker} 16*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32>) nounwind readnone 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_x86_ssse3_pabs_w_128(<8 x i16> %a0) { 20*9880d681SAndroid Build Coastguard Worker ; CHECK: pabsw 21*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16> %a0) ; <<8 x i16>> [#uses=1] 22*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16>) nounwind readnone 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_x86_ssse3_phadd_d_128(<4 x i32> %a0, <4 x i32> %a1) { 28*9880d681SAndroid Build Coastguard Worker ; CHECK: phaddd 29*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1] 30*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 31*9880d681SAndroid Build Coastguard Worker} 32*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32>, <4 x i32>) nounwind readnone 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_x86_ssse3_phadd_sw_128(<8 x i16> %a0, <8 x i16> %a1) { 36*9880d681SAndroid Build Coastguard Worker ; CHECK: phaddsw 37*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1] 38*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 39*9880d681SAndroid Build Coastguard Worker} 40*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_x86_ssse3_phadd_w_128(<8 x i16> %a0, <8 x i16> %a1) { 44*9880d681SAndroid Build Coastguard Worker ; CHECK: phaddw 45*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.ssse3.phadd.w.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1] 46*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 47*9880d681SAndroid Build Coastguard Worker} 48*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phadd.w.128(<8 x i16>, <8 x i16>) nounwind readnone 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_x86_ssse3_phsub_d_128(<4 x i32> %a0, <4 x i32> %a1) { 52*9880d681SAndroid Build Coastguard Worker ; CHECK: phsubd 53*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1] 54*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 55*9880d681SAndroid Build Coastguard Worker} 56*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32>, <4 x i32>) nounwind readnone 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_x86_ssse3_phsub_sw_128(<8 x i16> %a0, <8 x i16> %a1) { 60*9880d681SAndroid Build Coastguard Worker ; CHECK: phsubsw 61*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1] 62*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 63*9880d681SAndroid Build Coastguard Worker} 64*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_x86_ssse3_phsub_w_128(<8 x i16> %a0, <8 x i16> %a1) { 68*9880d681SAndroid Build Coastguard Worker ; CHECK: phsubw 69*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1] 70*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 71*9880d681SAndroid Build Coastguard Worker} 72*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16>, <8 x i16>) nounwind readnone 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_x86_ssse3_pmadd_ub_sw_128(<16 x i8> %a0, <16 x i8> %a1) { 76*9880d681SAndroid Build Coastguard Worker ; CHECK: pmaddubsw 77*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8> %a0, <16 x i8> %a1) ; <<8 x i16>> [#uses=1] 78*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 79*9880d681SAndroid Build Coastguard Worker} 80*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8>, <16 x i8>) nounwind readnone 81*9880d681SAndroid Build Coastguard Worker 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_x86_ssse3_pmul_hr_sw_128(<8 x i16> %a0, <8 x i16> %a1) { 84*9880d681SAndroid Build Coastguard Worker ; CHECK: pmulhrsw 85*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1] 86*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 87*9880d681SAndroid Build Coastguard Worker} 88*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16>, <8 x i16>) nounwind readnone 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_x86_ssse3_pshuf_b_128(<16 x i8> %a0, <16 x i8> %a1) { 92*9880d681SAndroid Build Coastguard Worker ; CHECK: pshufb 93*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1] 94*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 95*9880d681SAndroid Build Coastguard Worker} 96*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8>, <16 x i8>) nounwind readnone 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_x86_ssse3_psign_b_128(<16 x i8> %a0, <16 x i8> %a1) { 100*9880d681SAndroid Build Coastguard Worker ; CHECK: psignb 101*9880d681SAndroid Build Coastguard Worker %res = call <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1] 102*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %res 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8>, <16 x i8>) nounwind readnone 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_x86_ssse3_psign_d_128(<4 x i32> %a0, <4 x i32> %a1) { 108*9880d681SAndroid Build Coastguard Worker ; CHECK: psignd 109*9880d681SAndroid Build Coastguard Worker %res = call <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1] 110*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %res 111*9880d681SAndroid Build Coastguard Worker} 112*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32>, <4 x i32>) nounwind readnone 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_x86_ssse3_psign_w_128(<8 x i16> %a0, <8 x i16> %a1) { 116*9880d681SAndroid Build Coastguard Worker ; CHECK: psignw 117*9880d681SAndroid Build Coastguard Worker %res = call <8 x i16> @llvm.x86.ssse3.psign.w.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1] 118*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %res 119*9880d681SAndroid Build Coastguard Worker} 120*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.x86.ssse3.psign.w.128(<8 x i16>, <8 x i16>) nounwind readnone 121