1*f4a2713aSLionel Sambuc // REQUIRES: mips-registered-target 2*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -triple mips-unknown-linux-gnu -emit-llvm %s -o - \ 3*f4a2713aSLionel Sambuc // RUN: | FileCheck %s 4*f4a2713aSLionel Sambuc 5*f4a2713aSLionel Sambuc typedef signed char v16i8 __attribute__ ((vector_size(16))); 6*f4a2713aSLionel Sambuc typedef signed short v8i16 __attribute__ ((vector_size(16))); 7*f4a2713aSLionel Sambuc typedef signed int v4i32 __attribute__ ((vector_size(16))); 8*f4a2713aSLionel Sambuc typedef signed long long v2i64 __attribute__ ((vector_size(16))); 9*f4a2713aSLionel Sambuc typedef unsigned char v16u8 __attribute__ ((vector_size(16))); 10*f4a2713aSLionel Sambuc typedef unsigned short v8u16 __attribute__ ((vector_size(16))); 11*f4a2713aSLionel Sambuc typedef unsigned int v4u32 __attribute__ ((vector_size(16))); 12*f4a2713aSLionel Sambuc typedef unsigned long long v2u64 __attribute__ ((vector_size(16))); 13*f4a2713aSLionel Sambuc typedef __fp16 v8f16 __attribute__ ((vector_size(16))); 14*f4a2713aSLionel Sambuc typedef float v4f32 __attribute__ ((vector_size(16))); 15*f4a2713aSLionel Sambuc typedef double v2f64 __attribute__ ((vector_size(16))); 16*f4a2713aSLionel Sambuc 17*f4a2713aSLionel Sambuc void test(void) { 18*f4a2713aSLionel Sambuc v16i8 v16i8_a = (v16i8) {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; 19*f4a2713aSLionel Sambuc v16i8 v16i8_b = (v16i8) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; 20*f4a2713aSLionel Sambuc v16i8 v16i8_r; 21*f4a2713aSLionel Sambuc v8i16 v8i16_a = (v8i16) {0, 1, 2, 3, 4, 5, 6, 7}; 22*f4a2713aSLionel Sambuc v8i16 v8i16_b = (v8i16) {1, 2, 3, 4, 5, 6, 7, 8}; 23*f4a2713aSLionel Sambuc v8i16 v8i16_r; 24*f4a2713aSLionel Sambuc v4i32 v4i32_a = (v4i32) {0, 1, 2, 3}; 25*f4a2713aSLionel Sambuc v4i32 v4i32_b = (v4i32) {1, 2, 3, 4}; 26*f4a2713aSLionel Sambuc v4i32 v4i32_r; 27*f4a2713aSLionel Sambuc v2i64 v2i64_a = (v2i64) {0, 1}; 28*f4a2713aSLionel Sambuc v2i64 v2i64_b = (v2i64) {1, 2}; 29*f4a2713aSLionel Sambuc v2i64 v2i64_r; 30*f4a2713aSLionel Sambuc 31*f4a2713aSLionel Sambuc v16u8 v16u8_a = (v16u8) {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; 32*f4a2713aSLionel Sambuc v16u8 v16u8_b = (v16u8) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; 33*f4a2713aSLionel Sambuc v16u8 v16u8_r; 34*f4a2713aSLionel Sambuc v8u16 v8u16_a = (v8u16) {0, 1, 2, 3, 4, 5, 6, 7}; 35*f4a2713aSLionel Sambuc v8u16 v8u16_b = (v8u16) {1, 2, 3, 4, 5, 6, 7, 8}; 36*f4a2713aSLionel Sambuc v8u16 v8u16_r; 37*f4a2713aSLionel Sambuc v4u32 v4u32_a = (v4u32) {0, 1, 2, 3}; 38*f4a2713aSLionel Sambuc v4u32 v4u32_b = (v4u32) {1, 2, 3, 4}; 39*f4a2713aSLionel Sambuc v4u32 v4u32_r; 40*f4a2713aSLionel Sambuc v2u64 v2u64_a = (v2u64) {0, 1}; 41*f4a2713aSLionel Sambuc v2u64 v2u64_b = (v2u64) {1, 2}; 42*f4a2713aSLionel Sambuc v2u64 v2u64_r; 43*f4a2713aSLionel Sambuc 44*f4a2713aSLionel Sambuc v8f16 v8f16_a = (v8f16) {0.5, 1, 2, 3, 4, 5, 6, 7}; 45*f4a2713aSLionel Sambuc v8f16 v8f16_b = (v8f16) {1.5, 2, 3, 4, 5, 6, 7, 8}; 46*f4a2713aSLionel Sambuc v8f16 v8f16_r; 47*f4a2713aSLionel Sambuc v4f32 v4f32_a = (v4f32) {0.5, 1, 2, 3}; 48*f4a2713aSLionel Sambuc v4f32 v4f32_b = (v4f32) {1.5, 2, 3, 4}; 49*f4a2713aSLionel Sambuc v4f32 v4f32_r; 50*f4a2713aSLionel Sambuc v2f64 v2f64_a = (v2f64) {0.5, 1}; 51*f4a2713aSLionel Sambuc v2f64 v2f64_b = (v2f64) {1.5, 2}; 52*f4a2713aSLionel Sambuc v2f64 v2f64_r; 53*f4a2713aSLionel Sambuc 54*f4a2713aSLionel Sambuc int int_r; 55*f4a2713aSLionel Sambuc long long ll_r; 56*f4a2713aSLionel Sambuc int int_a = 0; 57*f4a2713aSLionel Sambuc 58*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_add_a_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.add.a.b( 59*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_add_a_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.add.a.h( 60*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_add_a_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.add.a.w( 61*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_add_a_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.add.a.d( 62*f4a2713aSLionel Sambuc 63*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_adds_a_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.adds.a.b( 64*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_adds_a_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.adds.a.h( 65*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_adds_a_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.adds.a.w( 66*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_adds_a_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.adds.a.d( 67*f4a2713aSLionel Sambuc 68*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_adds_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.adds.s.b( 69*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_adds_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.adds.s.h( 70*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_adds_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.adds.s.w( 71*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_adds_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.adds.s.d( 72*f4a2713aSLionel Sambuc 73*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_adds_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.adds.u.b( 74*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_adds_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.adds.u.h( 75*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_adds_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.adds.u.w( 76*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_adds_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.adds.u.d( 77*f4a2713aSLionel Sambuc 78*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_addv_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.addv.b( 79*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_addv_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.addv.h( 80*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_addv_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.addv.w( 81*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_addv_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.addv.d( 82*f4a2713aSLionel Sambuc 83*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_addv_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.addv.b( 84*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_addv_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.addv.h( 85*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_addv_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.addv.w( 86*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_addv_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.addv.d( 87*f4a2713aSLionel Sambuc 88*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_addvi_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.addvi.b( 89*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_addvi_h(v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.addvi.h( 90*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_addvi_w(v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.addvi.w( 91*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_addvi_d(v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.addvi.d( 92*f4a2713aSLionel Sambuc 93*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_addvi_b(v16u8_a, 25); // CHECK: call <16 x i8> @llvm.mips.addvi.b( 94*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_addvi_h(v8u16_a, 25); // CHECK: call <8 x i16> @llvm.mips.addvi.h( 95*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_addvi_w(v4u32_a, 25); // CHECK: call <4 x i32> @llvm.mips.addvi.w( 96*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_addvi_d(v2u64_a, 25); // CHECK: call <2 x i64> @llvm.mips.addvi.d( 97*f4a2713aSLionel Sambuc 98*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_and_v(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.and.v( 99*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_and_v(v8i16_a, v8i16_b); // CHECK: call <16 x i8> @llvm.mips.and.v( 100*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_and_v(v4i32_a, v4i32_b); // CHECK: call <16 x i8> @llvm.mips.and.v( 101*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_and_v(v2i64_a, v2i64_b); // CHECK: call <16 x i8> @llvm.mips.and.v( 102*f4a2713aSLionel Sambuc 103*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_andi_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.andi.b( 104*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_andi_b(v8i16_a, 25); // CHECK: call <16 x i8> @llvm.mips.andi.b( 105*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_andi_b(v4i32_a, 25); // CHECK: call <16 x i8> @llvm.mips.andi.b( 106*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_andi_b(v2i64_a, 25); // CHECK: call <16 x i8> @llvm.mips.andi.b( 107*f4a2713aSLionel Sambuc 108*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_andi_b(v16u8_a, 25); // CHECK: call <16 x i8> @llvm.mips.andi.b( 109*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_andi_b(v8u16_a, 25); // CHECK: call <16 x i8> @llvm.mips.andi.b( 110*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_andi_b(v4u32_a, 25); // CHECK: call <16 x i8> @llvm.mips.andi.b( 111*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_andi_b(v2u64_a, 25); // CHECK: call <16 x i8> @llvm.mips.andi.b( 112*f4a2713aSLionel Sambuc 113*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_asub_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.asub.s.b( 114*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_asub_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.asub.s.h( 115*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_asub_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.asub.s.w( 116*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_asub_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.asub.s.d( 117*f4a2713aSLionel Sambuc 118*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_asub_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.asub.u.b( 119*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_asub_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.asub.u.h( 120*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_asub_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.asub.u.w( 121*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_asub_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.asub.u.d( 122*f4a2713aSLionel Sambuc 123*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ave_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.ave.s.b( 124*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ave_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.ave.s.h( 125*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ave_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.ave.s.w( 126*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ave_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.ave.s.d( 127*f4a2713aSLionel Sambuc 128*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_ave_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.ave.u.b( 129*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_ave_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.ave.u.h( 130*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_ave_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.ave.u.w( 131*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_ave_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.ave.u.d( 132*f4a2713aSLionel Sambuc 133*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_aver_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.aver.s.b( 134*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_aver_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.aver.s.h( 135*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_aver_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.aver.s.w( 136*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_aver_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.aver.s.d( 137*f4a2713aSLionel Sambuc 138*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_aver_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.aver.u.b( 139*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_aver_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.aver.u.h( 140*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_aver_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.aver.u.w( 141*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_aver_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.aver.u.d( 142*f4a2713aSLionel Sambuc 143*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bclr_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.bclr.b( 144*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bclr_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.bclr.h( 145*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bclr_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.bclr.w( 146*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bclr_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.bclr.d( 147*f4a2713aSLionel Sambuc 148*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bclri_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.bclri.b( 149*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bclri_h(v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.bclri.h( 150*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bclri_w(v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.bclri.w( 151*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bclri_d(v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.bclri.d( 152*f4a2713aSLionel Sambuc 153*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_binsl_b(v16i8_r, v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.binsl.b( 154*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_binsl_h(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.binsl.h( 155*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_binsl_w(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.binsl.w( 156*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_binsl_d(v2i64_r, v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.binsl.d( 157*f4a2713aSLionel Sambuc 158*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_binsli_b(v16i8_r, v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.binsli.b( 159*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_binsli_h(v8i16_r, v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.binsli.h( 160*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_binsli_w(v4i32_r, v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.binsli.w( 161*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_binsli_d(v2i64_r, v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.binsli.d( 162*f4a2713aSLionel Sambuc 163*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_binsr_b(v16i8_r, v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.binsr.b( 164*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_binsr_h(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.binsr.h( 165*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_binsr_w(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.binsr.w( 166*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_binsr_d(v2i64_r, v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.binsr.d( 167*f4a2713aSLionel Sambuc 168*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_binsri_b(v16i8_r, v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.binsri.b( 169*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_binsri_h(v8i16_r, v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.binsri.h( 170*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_binsri_w(v4i32_r, v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.binsri.w( 171*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_binsri_d(v2i64_r, v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.binsri.d( 172*f4a2713aSLionel Sambuc 173*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bmnz_v(v16i8_r, v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.bmnz.v( 174*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bmnz_v(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <16 x i8> @llvm.mips.bmnz.v( 175*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bmnz_v(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <16 x i8> @llvm.mips.bmnz.v( 176*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bmnz_v(v2i64_r, v2i64_a, v2i64_b); // CHECK: call <16 x i8> @llvm.mips.bmnz.v( 177*f4a2713aSLionel Sambuc 178*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bmnzi_b(v16i8_r, v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.bmnzi.b( 179*f4a2713aSLionel Sambuc 180*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bmz_v(v16i8_r, v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.bmz.v( 181*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bmz_v(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <16 x i8> @llvm.mips.bmz.v( 182*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bmz_v(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <16 x i8> @llvm.mips.bmz.v( 183*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bmz_v(v2i64_r, v2i64_a, v2i64_b); // CHECK: call <16 x i8> @llvm.mips.bmz.v( 184*f4a2713aSLionel Sambuc 185*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bmzi_b(v16i8_r, v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.bmzi.b( 186*f4a2713aSLionel Sambuc 187*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bneg_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.bneg.b( 188*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bneg_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.bneg.h( 189*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bneg_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.bneg.w( 190*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bneg_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.bneg.d( 191*f4a2713aSLionel Sambuc 192*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bnegi_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.bnegi.b( 193*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bnegi_h(v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.bnegi.h( 194*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bnegi_w(v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.bnegi.w( 195*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bnegi_d(v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.bnegi.d( 196*f4a2713aSLionel Sambuc 197*f4a2713aSLionel Sambuc int_r = __builtin_msa_bnz_b(v16i8_a); // CHECK: call i32 @llvm.mips.bnz.b( 198*f4a2713aSLionel Sambuc int_r = __builtin_msa_bnz_h(v16i8_a); // CHECK: call i32 @llvm.mips.bnz.h( 199*f4a2713aSLionel Sambuc int_r = __builtin_msa_bnz_w(v16i8_a); // CHECK: call i32 @llvm.mips.bnz.w( 200*f4a2713aSLionel Sambuc int_r = __builtin_msa_bnz_d(v16i8_a); // CHECK: call i32 @llvm.mips.bnz.d( 201*f4a2713aSLionel Sambuc 202*f4a2713aSLionel Sambuc int_r = __builtin_msa_bnz_v(v16i8_a); // CHECK: call i32 @llvm.mips.bnz.v( 203*f4a2713aSLionel Sambuc 204*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bsel_v(v16i8_r, v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.bsel.v( 205*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bsel_v(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <16 x i8> @llvm.mips.bsel.v( 206*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bsel_v(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <16 x i8> @llvm.mips.bsel.v( 207*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bsel_v(v2i64_r, v2i64_a, v2i64_b); // CHECK: call <16 x i8> @llvm.mips.bsel.v( 208*f4a2713aSLionel Sambuc 209*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bseli_b(v16i8_r, v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.bseli.b( 210*f4a2713aSLionel Sambuc 211*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bset_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.bset.b( 212*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bset_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.bset.h( 213*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bset_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.bset.w( 214*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bset_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.bset.d( 215*f4a2713aSLionel Sambuc 216*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_bseti_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.bseti.b( 217*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_bseti_h(v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.bseti.h( 218*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_bseti_w(v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.bseti.w( 219*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_bseti_d(v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.bseti.d( 220*f4a2713aSLionel Sambuc 221*f4a2713aSLionel Sambuc int_r = __builtin_msa_bz_b(v16i8_a); // CHECK: call i32 @llvm.mips.bz.b( 222*f4a2713aSLionel Sambuc int_r = __builtin_msa_bz_h(v16i8_a); // CHECK: call i32 @llvm.mips.bz.h( 223*f4a2713aSLionel Sambuc int_r = __builtin_msa_bz_w(v16i8_a); // CHECK: call i32 @llvm.mips.bz.w( 224*f4a2713aSLionel Sambuc int_r = __builtin_msa_bz_d(v16i8_a); // CHECK: call i32 @llvm.mips.bz.d( 225*f4a2713aSLionel Sambuc 226*f4a2713aSLionel Sambuc int_r = __builtin_msa_bz_v(v16i8_a); // CHECK: call i32 @llvm.mips.bz.v( 227*f4a2713aSLionel Sambuc 228*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ceq_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.ceq.b( 229*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ceq_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.ceq.h( 230*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ceq_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.ceq.w( 231*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ceq_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.ceq.d( 232*f4a2713aSLionel Sambuc 233*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ceqi_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.ceqi.b( 234*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ceqi_h(v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.ceqi.h( 235*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ceqi_w(v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.ceqi.w( 236*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ceqi_d(v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.ceqi.d( 237*f4a2713aSLionel Sambuc 238*f4a2713aSLionel Sambuc int_r = __builtin_msa_cfcmsa(1); // CHECK: call i32 @llvm.mips.cfcmsa( 239*f4a2713aSLionel Sambuc 240*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_cle_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.cle.s.b( 241*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_cle_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.cle.s.h( 242*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_cle_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.cle.s.w( 243*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_cle_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.cle.s.d( 244*f4a2713aSLionel Sambuc 245*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_cle_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.cle.u.b( 246*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_cle_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.cle.u.h( 247*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_cle_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.cle.u.w( 248*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_cle_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.cle.u.d( 249*f4a2713aSLionel Sambuc 250*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_clei_s_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.clei.s.b( 251*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_clei_s_h(v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.clei.s.h( 252*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_clei_s_w(v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.clei.s.w( 253*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_clei_s_d(v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.clei.s.d( 254*f4a2713aSLionel Sambuc 255*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_clei_u_b(v16u8_a, 25); // CHECK: call <16 x i8> @llvm.mips.clei.u.b( 256*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_clei_u_h(v8u16_a, 25); // CHECK: call <8 x i16> @llvm.mips.clei.u.h( 257*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_clei_u_w(v4u32_a, 25); // CHECK: call <4 x i32> @llvm.mips.clei.u.w( 258*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_clei_u_d(v2u64_a, 25); // CHECK: call <2 x i64> @llvm.mips.clei.u.d( 259*f4a2713aSLionel Sambuc 260*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_clt_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.clt.s.b( 261*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_clt_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.clt.s.h( 262*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_clt_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.clt.s.w( 263*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_clt_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.clt.s.d( 264*f4a2713aSLionel Sambuc 265*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_clt_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.clt.u.b( 266*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_clt_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.clt.u.h( 267*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_clt_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.clt.u.w( 268*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_clt_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.clt.u.d( 269*f4a2713aSLionel Sambuc 270*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_clti_s_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.clti.s.b( 271*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_clti_s_h(v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.clti.s.h( 272*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_clti_s_w(v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.clti.s.w( 273*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_clti_s_d(v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.clti.s.d( 274*f4a2713aSLionel Sambuc 275*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_clti_u_b(v16u8_a, 25); // CHECK: call <16 x i8> @llvm.mips.clti.u.b( 276*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_clti_u_h(v8u16_a, 25); // CHECK: call <8 x i16> @llvm.mips.clti.u.h( 277*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_clti_u_w(v4u32_a, 25); // CHECK: call <4 x i32> @llvm.mips.clti.u.w( 278*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_clti_u_d(v2u64_a, 25); // CHECK: call <2 x i64> @llvm.mips.clti.u.d( 279*f4a2713aSLionel Sambuc 280*f4a2713aSLionel Sambuc int_r = __builtin_msa_copy_s_b(v16i8_a, 1); // CHECK: call i32 @llvm.mips.copy.s.b( 281*f4a2713aSLionel Sambuc int_r = __builtin_msa_copy_s_h(v8i16_a, 1); // CHECK: call i32 @llvm.mips.copy.s.h( 282*f4a2713aSLionel Sambuc int_r = __builtin_msa_copy_s_w(v4i32_a, 1); // CHECK: call i32 @llvm.mips.copy.s.w( 283*f4a2713aSLionel Sambuc ll_r = __builtin_msa_copy_s_d(v2i64_a, 1); // CHECK: call i64 @llvm.mips.copy.s.d( 284*f4a2713aSLionel Sambuc 285*f4a2713aSLionel Sambuc int_r = __builtin_msa_copy_u_b(v16u8_a, 1); // CHECK: call i32 @llvm.mips.copy.u.b( 286*f4a2713aSLionel Sambuc int_r = __builtin_msa_copy_u_h(v8u16_a, 1); // CHECK: call i32 @llvm.mips.copy.u.h( 287*f4a2713aSLionel Sambuc int_r = __builtin_msa_copy_u_w(v4u32_a, 1); // CHECK: call i32 @llvm.mips.copy.u.w( 288*f4a2713aSLionel Sambuc ll_r = __builtin_msa_copy_u_d(v2i64_a, 1); // CHECK: call i64 @llvm.mips.copy.u.d( 289*f4a2713aSLionel Sambuc 290*f4a2713aSLionel Sambuc __builtin_msa_ctcmsa(1, int_a); // CHECK: call void @llvm.mips.ctcmsa( 291*f4a2713aSLionel Sambuc 292*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_div_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.div.s.b( 293*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_div_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.div.s.h( 294*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_div_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.div.s.w( 295*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_div_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.div.s.d( 296*f4a2713aSLionel Sambuc 297*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_div_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.div.u.b( 298*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_div_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.div.u.h( 299*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_div_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.div.u.w( 300*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_div_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.div.u.d( 301*f4a2713aSLionel Sambuc 302*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_dotp_s_h(v16i8_a, v16i8_b); // CHECK: call <8 x i16> @llvm.mips.dotp.s.h( 303*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_dotp_s_w(v8i16_a, v8i16_b); // CHECK: call <4 x i32> @llvm.mips.dotp.s.w( 304*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_dotp_s_d(v4i32_a, v4i32_b); // CHECK: call <2 x i64> @llvm.mips.dotp.s.d( 305*f4a2713aSLionel Sambuc 306*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_dotp_u_h(v16u8_a, v16u8_b); // CHECK: call <8 x i16> @llvm.mips.dotp.u.h( 307*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_dotp_u_w(v8u16_a, v8u16_b); // CHECK: call <4 x i32> @llvm.mips.dotp.u.w( 308*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_dotp_u_d(v4u32_a, v4u32_b); // CHECK: call <2 x i64> @llvm.mips.dotp.u.d( 309*f4a2713aSLionel Sambuc 310*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_dpadd_s_h(v8i16_r, v16i8_a, v16i8_b); // CHECK: call <8 x i16> @llvm.mips.dpadd.s.h( 311*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_dpadd_s_w(v4i32_r, v8i16_a, v8i16_b); // CHECK: call <4 x i32> @llvm.mips.dpadd.s.w( 312*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_dpadd_s_d(v2i64_r, v4i32_a, v4i32_b); // CHECK: call <2 x i64> @llvm.mips.dpadd.s.d( 313*f4a2713aSLionel Sambuc 314*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_dpadd_u_h(v8u16_r, v16u8_a, v16u8_b); // CHECK: call <8 x i16> @llvm.mips.dpadd.u.h( 315*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_dpadd_u_w(v4u32_r, v8u16_a, v8u16_b); // CHECK: call <4 x i32> @llvm.mips.dpadd.u.w( 316*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_dpadd_u_d(v2u64_r, v4u32_a, v4u32_b); // CHECK: call <2 x i64> @llvm.mips.dpadd.u.d( 317*f4a2713aSLionel Sambuc 318*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_dpsub_s_h(v8i16_r, v16i8_a, v16i8_b); // CHECK: call <8 x i16> @llvm.mips.dpsub.s.h( 319*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_dpsub_s_w(v4i32_r, v8i16_a, v8i16_b); // CHECK: call <4 x i32> @llvm.mips.dpsub.s.w( 320*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_dpsub_s_d(v2i64_r, v4i32_a, v4i32_b); // CHECK: call <2 x i64> @llvm.mips.dpsub.s.d( 321*f4a2713aSLionel Sambuc 322*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_dpsub_u_h(v8u16_r, v16u8_a, v16u8_b); // CHECK: call <8 x i16> @llvm.mips.dpsub.u.h( 323*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_dpsub_u_w(v4u32_r, v8u16_a, v8u16_b); // CHECK: call <4 x i32> @llvm.mips.dpsub.u.w( 324*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_dpsub_u_d(v2u64_r, v4u32_a, v4u32_b); // CHECK: call <2 x i64> @llvm.mips.dpsub.u.d( 325*f4a2713aSLionel Sambuc 326*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fadd_w(v4f32_a, v4f32_b); // CHECK: call <4 x float> @llvm.mips.fadd.w( 327*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fadd_d(v2f64_a, v2f64_b); // CHECK: call <2 x double> @llvm.mips.fadd.d( 328*f4a2713aSLionel Sambuc 329*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcaf_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcaf.w( 330*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcaf_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcaf.d( 331*f4a2713aSLionel Sambuc 332*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fceq_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fceq.w( 333*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fceq_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fceq.d( 334*f4a2713aSLionel Sambuc 335*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fclass_w(v4f32_a); // CHECK: call <4 x i32> @llvm.mips.fclass.w( 336*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fclass_d(v2f64_a); // CHECK: call <2 x i64> @llvm.mips.fclass.d( 337*f4a2713aSLionel Sambuc 338*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcle_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcle.w( 339*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcle_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcle.d( 340*f4a2713aSLionel Sambuc 341*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fclt_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fclt.w( 342*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fclt_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fclt.d( 343*f4a2713aSLionel Sambuc 344*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcne_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcne.w( 345*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcne_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcne.d( 346*f4a2713aSLionel Sambuc 347*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcor_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcor.w( 348*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcor_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcor.d( 349*f4a2713aSLionel Sambuc 350*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcueq_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcueq.w( 351*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcueq_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcueq.d( 352*f4a2713aSLionel Sambuc 353*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcule_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcule.w( 354*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcule_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcule.d( 355*f4a2713aSLionel Sambuc 356*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcult_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcult.w( 357*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcult_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcult.d( 358*f4a2713aSLionel Sambuc 359*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcun_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcun.w( 360*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcun_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcun.d( 361*f4a2713aSLionel Sambuc 362*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fcune_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fcune.w( 363*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fcune_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fcune.d( 364*f4a2713aSLionel Sambuc 365*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fdiv_w(v4f32_a, v4f32_b); // CHECK: call <4 x float> @llvm.mips.fdiv.w( 366*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fdiv_d(v2f64_a, v2f64_b); // CHECK: call <2 x double> @llvm.mips.fdiv.d( 367*f4a2713aSLionel Sambuc 368*f4a2713aSLionel Sambuc v8f16_r = __builtin_msa_fexdo_h(v4f32_a, v4f32_b); // CHECK: call <8 x half> @llvm.mips.fexdo.h( 369*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fexdo_w(v2f64_a, v2f64_b); // CHECK: call <4 x float> @llvm.mips.fexdo.w( 370*f4a2713aSLionel Sambuc 371*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fexp2_w(v4f32_a, v4i32_b); // CHECK: call <4 x float> @llvm.mips.fexp2.w( 372*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fexp2_d(v2f64_a, v2i64_b); // CHECK: call <2 x double> @llvm.mips.fexp2.d( 373*f4a2713aSLionel Sambuc 374*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fexupl_w(v8f16_a); // CHECK: call <4 x float> @llvm.mips.fexupl.w( 375*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fexupl_d(v4f32_a); // CHECK: call <2 x double> @llvm.mips.fexupl.d( 376*f4a2713aSLionel Sambuc 377*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fexupr_w(v8f16_a); // CHECK: call <4 x float> @llvm.mips.fexupr.w( 378*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fexupr_d(v4f32_a); // CHECK: call <2 x double> @llvm.mips.fexupr.d( 379*f4a2713aSLionel Sambuc 380*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_ffint_s_w(v4i32_a); // CHECK: call <4 x float> @llvm.mips.ffint.s.w( 381*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_ffint_s_d(v2i64_a); // CHECK: call <2 x double> @llvm.mips.ffint.s.d( 382*f4a2713aSLionel Sambuc 383*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_ffint_u_w(v4i32_a); // CHECK: call <4 x float> @llvm.mips.ffint.u.w( 384*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_ffint_u_d(v2i64_a); // CHECK: call <2 x double> @llvm.mips.ffint.u.d( 385*f4a2713aSLionel Sambuc 386*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_ffql_w(v8i16_a); // CHECK: call <4 x float> @llvm.mips.ffql.w( 387*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_ffql_d(v4i32_a); // CHECK: call <2 x double> @llvm.mips.ffql.d( 388*f4a2713aSLionel Sambuc 389*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_ffqr_w(v8i16_a); // CHECK: call <4 x float> @llvm.mips.ffqr.w( 390*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_ffqr_d(v4i32_a); // CHECK: call <2 x double> @llvm.mips.ffqr.d( 391*f4a2713aSLionel Sambuc 392*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_fill_b(3); // CHECK: call <16 x i8> @llvm.mips.fill.b( 393*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_fill_h(3); // CHECK: call <8 x i16> @llvm.mips.fill.h( 394*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fill_w(3); // CHECK: call <4 x i32> @llvm.mips.fill.w( 395*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fill_d(3); // CHECK: call <2 x i64> @llvm.mips.fill.d( 396*f4a2713aSLionel Sambuc 397*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_flog2_w(v8f16_a); // CHECK: call <4 x float> @llvm.mips.flog2.w( 398*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_flog2_d(v4f32_a); // CHECK: call <2 x double> @llvm.mips.flog2.d( 399*f4a2713aSLionel Sambuc 400*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fmadd_w(v8f16_r, v8f16_a, v8f16_b); // CHECK: call <4 x float> @llvm.mips.fmadd.w( 401*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fmadd_d(v4f32_r, v4f32_a, v4f32_b); // CHECK: call <2 x double> @llvm.mips.fmadd.d( 402*f4a2713aSLionel Sambuc 403*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fmax_w(v4f32_a, v4f32_b); // CHECK: call <4 x float> @llvm.mips.fmax.w( 404*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fmax_d(v2f64_a, v2f64_b); // CHECK: call <2 x double> @llvm.mips.fmax.d( 405*f4a2713aSLionel Sambuc 406*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fmax_a_w(v4f32_a, v4f32_b); // CHECK: call <4 x float> @llvm.mips.fmax.a.w( 407*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fmax_a_d(v2f64_a, v2f64_b); // CHECK: call <2 x double> @llvm.mips.fmax.a.d( 408*f4a2713aSLionel Sambuc 409*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fmin_w(v4f32_a, v4f32_b); // CHECK: call <4 x float> @llvm.mips.fmin.w( 410*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fmin_d(v2f64_a, v2f64_b); // CHECK: call <2 x double> @llvm.mips.fmin.d( 411*f4a2713aSLionel Sambuc 412*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fmin_a_w(v4f32_a, v4f32_b); // CHECK: call <4 x float> @llvm.mips.fmin.a.w( 413*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fmin_a_d(v2f64_a, v2f64_b); // CHECK: call <2 x double> @llvm.mips.fmin.a.d( 414*f4a2713aSLionel Sambuc 415*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fmsub_w(v8f16_r, v8f16_a, v8f16_b); // CHECK: call <4 x float> @llvm.mips.fmsub.w( 416*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fmsub_d(v4f32_r, v4f32_a, v4f32_b); // CHECK: call <2 x double> @llvm.mips.fmsub.d( 417*f4a2713aSLionel Sambuc 418*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fmul_w(v4f32_a, v4f32_b); // CHECK: call <4 x float> @llvm.mips.fmul.w( 419*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fmul_d(v2f64_a, v2f64_b); // CHECK: call <2 x double> @llvm.mips.fmul.d( 420*f4a2713aSLionel Sambuc 421*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_frint_w(v8f16_a); // CHECK: call <4 x float> @llvm.mips.frint.w( 422*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_frint_d(v4f32_a); // CHECK: call <2 x double> @llvm.mips.frint.d( 423*f4a2713aSLionel Sambuc 424*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_frcp_w(v8f16_a); // CHECK: call <4 x float> @llvm.mips.frcp.w( 425*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_frcp_d(v4f32_a); // CHECK: call <2 x double> @llvm.mips.frcp.d( 426*f4a2713aSLionel Sambuc 427*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_frsqrt_w(v8f16_a); // CHECK: call <4 x float> @llvm.mips.frsqrt.w( 428*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_frsqrt_d(v4f32_a); // CHECK: call <2 x double> @llvm.mips.frsqrt.d( 429*f4a2713aSLionel Sambuc 430*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fseq_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fseq.w( 431*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fseq_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fseq.d( 432*f4a2713aSLionel Sambuc 433*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsaf_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsaf.w( 434*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsaf_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsaf.d( 435*f4a2713aSLionel Sambuc 436*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsle_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsle.w( 437*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsle_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsle.d( 438*f4a2713aSLionel Sambuc 439*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fslt_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fslt.w( 440*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fslt_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fslt.d( 441*f4a2713aSLionel Sambuc 442*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsne_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsne.w( 443*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsne_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsne.d( 444*f4a2713aSLionel Sambuc 445*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsor_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsor.w( 446*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsor_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsor.d( 447*f4a2713aSLionel Sambuc 448*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fsqrt_w(v8f16_a); // CHECK: call <4 x float> @llvm.mips.fsqrt.w( 449*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fsqrt_d(v4f32_a); // CHECK: call <2 x double> @llvm.mips.fsqrt.d( 450*f4a2713aSLionel Sambuc 451*f4a2713aSLionel Sambuc v4f32_r = __builtin_msa_fsub_w(v4f32_a, v4f32_b); // CHECK: call <4 x float> @llvm.mips.fsub.w( 452*f4a2713aSLionel Sambuc v2f64_r = __builtin_msa_fsub_d(v2f64_a, v2f64_b); // CHECK: call <2 x double> @llvm.mips.fsub.d( 453*f4a2713aSLionel Sambuc 454*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsueq_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsueq.w( 455*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsueq_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsueq.d( 456*f4a2713aSLionel Sambuc 457*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsule_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsule.w( 458*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsule_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsule.d( 459*f4a2713aSLionel Sambuc 460*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsult_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsult.w( 461*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsult_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsult.d( 462*f4a2713aSLionel Sambuc 463*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsun_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsun.w( 464*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsun_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsun.d( 465*f4a2713aSLionel Sambuc 466*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_fsune_w(v4f32_a, v4f32_b); // CHECK: call <4 x i32> @llvm.mips.fsune.w( 467*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_fsune_d(v2f64_a, v2f64_b); // CHECK: call <2 x i64> @llvm.mips.fsune.d( 468*f4a2713aSLionel Sambuc 469*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ftint_s_w(v4f32_a); // CHECK: call <4 x i32> @llvm.mips.ftint.s.w( 470*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ftint_s_d(v2f64_a); // CHECK: call <2 x i64> @llvm.mips.ftint.s.d( 471*f4a2713aSLionel Sambuc 472*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ftint_u_w(v4f32_a); // CHECK: call <4 x i32> @llvm.mips.ftint.u.w( 473*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ftint_u_d(v2f64_a); // CHECK: call <2 x i64> @llvm.mips.ftint.u.d( 474*f4a2713aSLionel Sambuc 475*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ftq_h(v4f32_a, v4f32_b); // CHECK: call <8 x i16> @llvm.mips.ftq.h( 476*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ftq_w(v2f64_a, v2f64_b); // CHECK: call <4 x i32> @llvm.mips.ftq.w( 477*f4a2713aSLionel Sambuc 478*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ftrunc_s_w(v4f32_a); // CHECK: call <4 x i32> @llvm.mips.ftrunc.s.w( 479*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ftrunc_s_d(v2f64_a); // CHECK: call <2 x i64> @llvm.mips.ftrunc.s.d( 480*f4a2713aSLionel Sambuc 481*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ftrunc_u_w(v4f32_a); // CHECK: call <4 x i32> @llvm.mips.ftrunc.u.w( 482*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ftrunc_u_d(v2f64_a); // CHECK: call <2 x i64> @llvm.mips.ftrunc.u.d( 483*f4a2713aSLionel Sambuc 484*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_hadd_s_h(v16i8_a, v16i8_b); // CHECK: call <8 x i16> @llvm.mips.hadd.s.h( 485*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_hadd_s_w(v8i16_a, v8i16_b); // CHECK: call <4 x i32> @llvm.mips.hadd.s.w( 486*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_hadd_s_d(v4i32_a, v4i32_b); // CHECK: call <2 x i64> @llvm.mips.hadd.s.d( 487*f4a2713aSLionel Sambuc 488*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_hadd_u_h(v16u8_a, v16u8_b); // CHECK: call <8 x i16> @llvm.mips.hadd.u.h( 489*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_hadd_u_w(v8u16_a, v8u16_b); // CHECK: call <4 x i32> @llvm.mips.hadd.u.w( 490*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_hadd_u_d(v4u32_a, v4u32_b); // CHECK: call <2 x i64> @llvm.mips.hadd.u.d( 491*f4a2713aSLionel Sambuc 492*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_hsub_s_h(v16i8_a, v16i8_b); // CHECK: call <8 x i16> @llvm.mips.hsub.s.h( 493*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_hsub_s_w(v8i16_a, v8i16_b); // CHECK: call <4 x i32> @llvm.mips.hsub.s.w( 494*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_hsub_s_d(v4i32_a, v4i32_b); // CHECK: call <2 x i64> @llvm.mips.hsub.s.d( 495*f4a2713aSLionel Sambuc 496*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_hsub_u_h(v16u8_a, v16u8_b); // CHECK: call <8 x i16> @llvm.mips.hsub.u.h( 497*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_hsub_u_w(v8u16_a, v8u16_b); // CHECK: call <4 x i32> @llvm.mips.hsub.u.w( 498*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_hsub_u_d(v4u32_a, v4u32_b); // CHECK: call <2 x i64> @llvm.mips.hsub.u.d( 499*f4a2713aSLionel Sambuc 500*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ilvev_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.ilvev.b( 501*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ilvev_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.ilvev.h( 502*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ilvev_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.ilvev.w( 503*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ilvev_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.ilvev.d( 504*f4a2713aSLionel Sambuc 505*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ilvl_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.ilvl.b( 506*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ilvl_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.ilvl.h( 507*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ilvl_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.ilvl.w( 508*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ilvl_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.ilvl.d( 509*f4a2713aSLionel Sambuc 510*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ilvod_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.ilvod.b( 511*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ilvod_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.ilvod.h( 512*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ilvod_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.ilvod.w( 513*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ilvod_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.ilvod.d( 514*f4a2713aSLionel Sambuc 515*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ilvr_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.ilvr.b( 516*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ilvr_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.ilvr.h( 517*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ilvr_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.ilvr.w( 518*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ilvr_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.ilvr.d( 519*f4a2713aSLionel Sambuc 520*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_insert_b(v16i8_r, 1, 25); // CHECK: call <16 x i8> @llvm.mips.insert.b( 521*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_insert_h(v8i16_r, 1, 25); // CHECK: call <8 x i16> @llvm.mips.insert.h( 522*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_insert_w(v4i32_r, 1, 25); // CHECK: call <4 x i32> @llvm.mips.insert.w( 523*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_insert_d(v2i64_r, 1, 25); // CHECK: call <2 x i64> @llvm.mips.insert.d( 524*f4a2713aSLionel Sambuc 525*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_insve_b(v16i8_r, 1, v16i8_a); // CHECK: call <16 x i8> @llvm.mips.insve.b( 526*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_insve_h(v8i16_r, 1, v8i16_a); // CHECK: call <8 x i16> @llvm.mips.insve.h( 527*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_insve_w(v4i32_r, 1, v4i32_a); // CHECK: call <4 x i32> @llvm.mips.insve.w( 528*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_insve_d(v2i64_r, 1, v2i64_a); // CHECK: call <2 x i64> @llvm.mips.insve.d( 529*f4a2713aSLionel Sambuc 530*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ld_b(&v16i8_a, 1); // CHECK: call <16 x i8> @llvm.mips.ld.b( 531*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ld_h(&v8i16_a, 2); // CHECK: call <8 x i16> @llvm.mips.ld.h( 532*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ld_w(&v4i32_a, 4); // CHECK: call <4 x i32> @llvm.mips.ld.w( 533*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ld_d(&v2i64_a, 8); // CHECK: call <2 x i64> @llvm.mips.ld.d( 534*f4a2713aSLionel Sambuc 535*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ldi_b(3); // CHECK: call <16 x i8> @llvm.mips.ldi.b( 536*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ldi_h(3); // CHECK: call <8 x i16> @llvm.mips.ldi.h( 537*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ldi_w(3); // CHECK: call <4 x i32> @llvm.mips.ldi.w( 538*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ldi_d(3); // CHECK: call <2 x i64> @llvm.mips.ldi.d( 539*f4a2713aSLionel Sambuc 540*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_madd_q_h(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.madd.q.h( 541*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_madd_q_w(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.madd.q.w( 542*f4a2713aSLionel Sambuc 543*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_maddr_q_h(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.maddr.q.h( 544*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_maddr_q_w(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.maddr.q.w( 545*f4a2713aSLionel Sambuc 546*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_maddv_b(v16i8_r, v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.maddv.b( 547*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_maddv_h(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.maddv.h( 548*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_maddv_w(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.maddv.w( 549*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_maddv_d(v2i64_r, v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.maddv.d( 550*f4a2713aSLionel Sambuc 551*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_max_a_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.max.a.b( 552*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_max_a_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.max.a.h( 553*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_max_a_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.max.a.w( 554*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_max_a_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.max.a.d( 555*f4a2713aSLionel Sambuc 556*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_max_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.max.s.b( 557*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_max_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.max.s.h( 558*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_max_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.max.s.w( 559*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_max_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.max.s.d( 560*f4a2713aSLionel Sambuc 561*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_max_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.max.u.b( 562*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_max_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.max.u.h( 563*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_max_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.max.u.w( 564*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_max_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.max.u.d( 565*f4a2713aSLionel Sambuc 566*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_maxi_s_b(v16i8_a, 2); // CHECK: call <16 x i8> @llvm.mips.maxi.s.b( 567*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_maxi_s_h(v8i16_a, 2); // CHECK: call <8 x i16> @llvm.mips.maxi.s.h( 568*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_maxi_s_w(v4i32_a, 2); // CHECK: call <4 x i32> @llvm.mips.maxi.s.w( 569*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_maxi_s_d(v2i64_a, 2); // CHECK: call <2 x i64> @llvm.mips.maxi.s.d( 570*f4a2713aSLionel Sambuc 571*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_maxi_u_b(v16u8_a, 2); // CHECK: call <16 x i8> @llvm.mips.maxi.u.b( 572*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_maxi_u_h(v8u16_a, 2); // CHECK: call <8 x i16> @llvm.mips.maxi.u.h( 573*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_maxi_u_w(v4u32_a, 2); // CHECK: call <4 x i32> @llvm.mips.maxi.u.w( 574*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_maxi_u_d(v2u64_a, 2); // CHECK: call <2 x i64> @llvm.mips.maxi.u.d( 575*f4a2713aSLionel Sambuc 576*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_min_a_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.min.a.b( 577*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_min_a_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.min.a.h( 578*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_min_a_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.min.a.w( 579*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_min_a_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.min.a.d( 580*f4a2713aSLionel Sambuc 581*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_min_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.min.s.b( 582*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_min_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.min.s.h( 583*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_min_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.min.s.w( 584*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_min_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.min.s.d( 585*f4a2713aSLionel Sambuc 586*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_min_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.min.u.b( 587*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_min_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.min.u.h( 588*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_min_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.min.u.w( 589*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_min_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.min.u.d( 590*f4a2713aSLionel Sambuc 591*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_mini_s_b(v16i8_a, 2); // CHECK: call <16 x i8> @llvm.mips.mini.s.b( 592*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_mini_s_h(v8i16_a, 2); // CHECK: call <8 x i16> @llvm.mips.mini.s.h( 593*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_mini_s_w(v4i32_a, 2); // CHECK: call <4 x i32> @llvm.mips.mini.s.w( 594*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_mini_s_d(v2i64_a, 2); // CHECK: call <2 x i64> @llvm.mips.mini.s.d( 595*f4a2713aSLionel Sambuc 596*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_mini_u_b(v16u8_a, 2); // CHECK: call <16 x i8> @llvm.mips.mini.u.b( 597*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_mini_u_h(v8u16_a, 2); // CHECK: call <8 x i16> @llvm.mips.mini.u.h( 598*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_mini_u_w(v4u32_a, 2); // CHECK: call <4 x i32> @llvm.mips.mini.u.w( 599*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_mini_u_d(v2u64_a, 2); // CHECK: call <2 x i64> @llvm.mips.mini.u.d( 600*f4a2713aSLionel Sambuc 601*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_mod_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.mod.s.b( 602*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_mod_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.mod.s.h( 603*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_mod_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.mod.s.w( 604*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_mod_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.mod.s.d( 605*f4a2713aSLionel Sambuc 606*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_mod_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.mod.u.b( 607*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_mod_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.mod.u.h( 608*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_mod_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.mod.u.w( 609*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_mod_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.mod.u.d( 610*f4a2713aSLionel Sambuc 611*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_move_v(v16i8_a); // CHECK: call <16 x i8> @llvm.mips.move.v( 612*f4a2713aSLionel Sambuc 613*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_msub_q_h(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.msub.q.h( 614*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_msub_q_w(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.msub.q.w( 615*f4a2713aSLionel Sambuc 616*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_msubr_q_h(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.msubr.q.h( 617*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_msubr_q_w(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.msubr.q.w( 618*f4a2713aSLionel Sambuc 619*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_msubv_b(v16i8_r, v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.msubv.b( 620*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_msubv_h(v8i16_r, v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.msubv.h( 621*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_msubv_w(v4i32_r, v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.msubv.w( 622*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_msubv_d(v2i64_r, v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.msubv.d( 623*f4a2713aSLionel Sambuc 624*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_mul_q_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.mul.q.h( 625*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_mul_q_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.mul.q.w( 626*f4a2713aSLionel Sambuc 627*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_mulr_q_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.mulr.q.h( 628*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_mulr_q_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.mulr.q.w( 629*f4a2713aSLionel Sambuc 630*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_mulv_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.mulv.b( 631*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_mulv_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.mulv.h( 632*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_mulv_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.mulv.w( 633*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_mulv_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.mulv.d( 634*f4a2713aSLionel Sambuc 635*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_nloc_b(v16i8_a); // CHECK: call <16 x i8> @llvm.mips.nloc.b( 636*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_nloc_h(v8i16_a); // CHECK: call <8 x i16> @llvm.mips.nloc.h( 637*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_nloc_w(v4i32_a); // CHECK: call <4 x i32> @llvm.mips.nloc.w( 638*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_nloc_d(v2i64_a); // CHECK: call <2 x i64> @llvm.mips.nloc.d( 639*f4a2713aSLionel Sambuc 640*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_nlzc_b(v16i8_a); // CHECK: call <16 x i8> @llvm.mips.nlzc.b( 641*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_nlzc_h(v8i16_a); // CHECK: call <8 x i16> @llvm.mips.nlzc.h( 642*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_nlzc_w(v4i32_a); // CHECK: call <4 x i32> @llvm.mips.nlzc.w( 643*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_nlzc_d(v2i64_a); // CHECK: call <2 x i64> @llvm.mips.nlzc.d( 644*f4a2713aSLionel Sambuc 645*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_nor_v(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.nor.v( 646*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_nor_v(v8i16_a, v8i16_b); // CHECK: call <16 x i8> @llvm.mips.nor.v( 647*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_nor_v(v4i32_a, v4i32_b); // CHECK: call <16 x i8> @llvm.mips.nor.v( 648*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_nor_v(v2i64_a, v2i64_b); // CHECK: call <16 x i8> @llvm.mips.nor.v( 649*f4a2713aSLionel Sambuc 650*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_nori_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.nori.b( 651*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_nori_b(v8i16_a, 25); // CHECK: call <16 x i8> @llvm.mips.nori.b( 652*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_nori_b(v4i32_a, 25); // CHECK: call <16 x i8> @llvm.mips.nori.b( 653*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_nori_b(v2i64_a, 25); // CHECK: call <16 x i8> @llvm.mips.nori.b( 654*f4a2713aSLionel Sambuc 655*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_nori_b(v16u8_a, 25); // CHECK: call <16 x i8> @llvm.mips.nori.b( 656*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_nori_b(v8u16_a, 25); // CHECK: call <16 x i8> @llvm.mips.nori.b( 657*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_nori_b(v4u32_a, 25); // CHECK: call <16 x i8> @llvm.mips.nori.b( 658*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_nori_b(v2u64_a, 25); // CHECK: call <16 x i8> @llvm.mips.nori.b( 659*f4a2713aSLionel Sambuc 660*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_or_v(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.or.v( 661*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_or_v(v8i16_a, v8i16_b); // CHECK: call <16 x i8> @llvm.mips.or.v( 662*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_or_v(v4i32_a, v4i32_b); // CHECK: call <16 x i8> @llvm.mips.or.v( 663*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_or_v(v2i64_a, v2i64_b); // CHECK: call <16 x i8> @llvm.mips.or.v( 664*f4a2713aSLionel Sambuc 665*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_ori_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.ori.b( 666*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_ori_b(v8i16_a, 25); // CHECK: call <16 x i8> @llvm.mips.ori.b( 667*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_ori_b(v4i32_a, 25); // CHECK: call <16 x i8> @llvm.mips.ori.b( 668*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_ori_b(v2i64_a, 25); // CHECK: call <16 x i8> @llvm.mips.ori.b( 669*f4a2713aSLionel Sambuc 670*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_ori_b(v16u8_a, 25); // CHECK: call <16 x i8> @llvm.mips.ori.b( 671*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_ori_b(v8u16_a, 25); // CHECK: call <16 x i8> @llvm.mips.ori.b( 672*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_ori_b(v4u32_a, 25); // CHECK: call <16 x i8> @llvm.mips.ori.b( 673*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_ori_b(v2u64_a, 25); // CHECK: call <16 x i8> @llvm.mips.ori.b( 674*f4a2713aSLionel Sambuc 675*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_pckev_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.pckev.b( 676*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_pckev_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.pckev.h( 677*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_pckev_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.pckev.w( 678*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_pckev_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.pckev.d( 679*f4a2713aSLionel Sambuc 680*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_pckod_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.pckod.b( 681*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_pckod_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.pckod.h( 682*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_pckod_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.pckod.w( 683*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_pckod_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.pckod.d( 684*f4a2713aSLionel Sambuc 685*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_pcnt_b(v16i8_a); // CHECK: call <16 x i8> @llvm.mips.pcnt.b( 686*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_pcnt_h(v8i16_a); // CHECK: call <8 x i16> @llvm.mips.pcnt.h( 687*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_pcnt_w(v4i32_a); // CHECK: call <4 x i32> @llvm.mips.pcnt.w( 688*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_pcnt_d(v2i64_a); // CHECK: call <2 x i64> @llvm.mips.pcnt.d( 689*f4a2713aSLionel Sambuc 690*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_sat_s_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.sat.s.b( 691*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_sat_s_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.sat.s.h( 692*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_sat_s_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.sat.s.w( 693*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_sat_s_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.sat.s.d( 694*f4a2713aSLionel Sambuc 695*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_sat_u_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.sat.u.b( 696*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_sat_u_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.sat.u.h( 697*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_sat_u_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.sat.u.w( 698*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_sat_u_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.sat.u.d( 699*f4a2713aSLionel Sambuc 700*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_shf_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.shf.b( 701*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_shf_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.shf.h( 702*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_shf_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.shf.w( 703*f4a2713aSLionel Sambuc 704*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_sld_b(v16i8_a, 10); // CHECK: call <16 x i8> @llvm.mips.sld.b( 705*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_sld_h(v8i16_a, 10); // CHECK: call <8 x i16> @llvm.mips.sld.h( 706*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_sld_w(v4i32_a, 10); // CHECK: call <4 x i32> @llvm.mips.sld.w( 707*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_sld_d(v2i64_a, 10); // CHECK: call <2 x i64> @llvm.mips.sld.d( 708*f4a2713aSLionel Sambuc 709*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_sldi_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.sldi.b( 710*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_sldi_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.sldi.h( 711*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_sldi_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.sldi.w( 712*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_sldi_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.sldi.d( 713*f4a2713aSLionel Sambuc 714*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_sll_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.sll.b( 715*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_sll_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.sll.h( 716*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_sll_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.sll.w( 717*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_sll_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.sll.d( 718*f4a2713aSLionel Sambuc 719*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_slli_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.slli.b( 720*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_slli_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.slli.h( 721*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_slli_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.slli.w( 722*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_slli_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.slli.d( 723*f4a2713aSLionel Sambuc 724*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_splat_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.splat.b( 725*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_splat_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.splat.h( 726*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_splat_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.splat.w( 727*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_splat_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.splat.d( 728*f4a2713aSLionel Sambuc 729*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_splati_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.splati.b( 730*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_splati_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.splati.h( 731*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_splati_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.splati.w( 732*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_splati_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.splati.d( 733*f4a2713aSLionel Sambuc 734*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_sra_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.sra.b( 735*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_sra_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.sra.h( 736*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_sra_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.sra.w( 737*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_sra_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.sra.d( 738*f4a2713aSLionel Sambuc 739*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_srai_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.srai.b( 740*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_srai_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.srai.h( 741*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_srai_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.srai.w( 742*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_srai_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.srai.d( 743*f4a2713aSLionel Sambuc 744*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_srar_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.srar.b( 745*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_srar_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.srar.h( 746*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_srar_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.srar.w( 747*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_srar_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.srar.d( 748*f4a2713aSLionel Sambuc 749*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_srari_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.srari.b( 750*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_srari_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.srari.h( 751*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_srari_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.srari.w( 752*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_srari_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.srari.d( 753*f4a2713aSLionel Sambuc 754*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_srl_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.srl.b( 755*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_srl_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.srl.h( 756*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_srl_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.srl.w( 757*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_srl_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.srl.d( 758*f4a2713aSLionel Sambuc 759*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_srli_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.srli.b( 760*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_srli_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.srli.h( 761*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_srli_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.srli.w( 762*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_srli_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.srli.d( 763*f4a2713aSLionel Sambuc 764*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_srlr_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.srlr.b( 765*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_srlr_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.srlr.h( 766*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_srlr_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.srlr.w( 767*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_srlr_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.srlr.d( 768*f4a2713aSLionel Sambuc 769*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_srlri_b(v16i8_a, 3); // CHECK: call <16 x i8> @llvm.mips.srlri.b( 770*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_srlri_h(v8i16_a, 3); // CHECK: call <8 x i16> @llvm.mips.srlri.h( 771*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_srlri_w(v4i32_a, 3); // CHECK: call <4 x i32> @llvm.mips.srlri.w( 772*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_srlri_d(v2i64_a, 3); // CHECK: call <2 x i64> @llvm.mips.srlri.d( 773*f4a2713aSLionel Sambuc 774*f4a2713aSLionel Sambuc __builtin_msa_st_b(v16i8_b, &v16i8_a, 1); // CHECK: call void @llvm.mips.st.b( 775*f4a2713aSLionel Sambuc __builtin_msa_st_h(v8i16_b, &v8i16_a, 2); // CHECK: call void @llvm.mips.st.h( 776*f4a2713aSLionel Sambuc __builtin_msa_st_w(v4i32_b, &v4i32_a, 4); // CHECK: call void @llvm.mips.st.w( 777*f4a2713aSLionel Sambuc __builtin_msa_st_d(v2i64_b, &v2i64_a, 8); // CHECK: call void @llvm.mips.st.d( 778*f4a2713aSLionel Sambuc 779*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_subs_s_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.subs.s.b( 780*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_subs_s_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.subs.s.h( 781*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_subs_s_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.subs.s.w( 782*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_subs_s_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.subs.s.d( 783*f4a2713aSLionel Sambuc 784*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_subs_u_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.subs.u.b( 785*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_subs_u_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.subs.u.h( 786*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_subs_u_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.subs.u.w( 787*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_subs_u_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.subs.u.d( 788*f4a2713aSLionel Sambuc 789*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_subsus_u_b(v16u8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.subsus.u.b( 790*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_subsus_u_h(v8u16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.subsus.u.h( 791*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_subsus_u_w(v4u32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.subsus.u.w( 792*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_subsus_u_d(v2u64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.subsus.u.d( 793*f4a2713aSLionel Sambuc 794*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_subsuu_s_b(v16u8_a, v16u8_b); // CHECK: call <16 x i8> @llvm.mips.subsuu.s.b( 795*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_subsuu_s_h(v8u16_a, v8u16_b); // CHECK: call <8 x i16> @llvm.mips.subsuu.s.h( 796*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_subsuu_s_w(v4u32_a, v4u32_b); // CHECK: call <4 x i32> @llvm.mips.subsuu.s.w( 797*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_subsuu_s_d(v2u64_a, v2u64_b); // CHECK: call <2 x i64> @llvm.mips.subsuu.s.d( 798*f4a2713aSLionel Sambuc 799*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_subv_b(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.subv.b( 800*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_subv_h(v8i16_a, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.subv.h( 801*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_subv_w(v4i32_a, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.subv.w( 802*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_subv_d(v2i64_a, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.subv.d( 803*f4a2713aSLionel Sambuc 804*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_subvi_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.subvi.b( 805*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_subvi_h(v8i16_a, 25); // CHECK: call <8 x i16> @llvm.mips.subvi.h( 806*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_subvi_w(v4i32_a, 25); // CHECK: call <4 x i32> @llvm.mips.subvi.w( 807*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_subvi_d(v2i64_a, 25); // CHECK: call <2 x i64> @llvm.mips.subvi.d( 808*f4a2713aSLionel Sambuc 809*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_vshf_b(v16i8_a, v16i8_b, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.vshf.b( 810*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_vshf_h(v8i16_a, v8i16_b, v8i16_b); // CHECK: call <8 x i16> @llvm.mips.vshf.h( 811*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_vshf_w(v4i32_a, v4i32_b, v4i32_b); // CHECK: call <4 x i32> @llvm.mips.vshf.w( 812*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_vshf_d(v2i64_a, v2i64_b, v2i64_b); // CHECK: call <2 x i64> @llvm.mips.vshf.d( 813*f4a2713aSLionel Sambuc 814*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_xor_v(v16i8_a, v16i8_b); // CHECK: call <16 x i8> @llvm.mips.xor.v( 815*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_xor_v(v8i16_a, v8i16_b); // CHECK: call <16 x i8> @llvm.mips.xor.v( 816*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_xor_v(v4i32_a, v4i32_b); // CHECK: call <16 x i8> @llvm.mips.xor.v( 817*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_xor_v(v2i64_a, v2i64_b); // CHECK: call <16 x i8> @llvm.mips.xor.v( 818*f4a2713aSLionel Sambuc 819*f4a2713aSLionel Sambuc v16i8_r = __builtin_msa_xori_b(v16i8_a, 25); // CHECK: call <16 x i8> @llvm.mips.xori.b( 820*f4a2713aSLionel Sambuc v8i16_r = __builtin_msa_xori_b(v8i16_a, 25); // CHECK: call <16 x i8> @llvm.mips.xori.b( 821*f4a2713aSLionel Sambuc v4i32_r = __builtin_msa_xori_b(v4i32_a, 25); // CHECK: call <16 x i8> @llvm.mips.xori.b( 822*f4a2713aSLionel Sambuc v2i64_r = __builtin_msa_xori_b(v2i64_a, 25); // CHECK: call <16 x i8> @llvm.mips.xori.b( 823*f4a2713aSLionel Sambuc 824*f4a2713aSLionel Sambuc v16u8_r = __builtin_msa_xori_b(v16u8_a, 25); // CHECK: call <16 x i8> @llvm.mips.xori.b( 825*f4a2713aSLionel Sambuc v8u16_r = __builtin_msa_xori_b(v8u16_a, 25); // CHECK: call <16 x i8> @llvm.mips.xori.b( 826*f4a2713aSLionel Sambuc v4u32_r = __builtin_msa_xori_b(v4u32_a, 25); // CHECK: call <16 x i8> @llvm.mips.xori.b( 827*f4a2713aSLionel Sambuc v2u64_r = __builtin_msa_xori_b(v2u64_a, 25); // CHECK: call <16 x i8> @llvm.mips.xori.b( 828*f4a2713aSLionel Sambuc 829*f4a2713aSLionel Sambuc } 830