blob: a660ef2c1cd8c57b5f67e95949662d77c58e0506 [file] [edit]
#include "lsx_test_util.h"
#include <lsxintrin.h>
int
main ()
{
__m128i __m128i_out, __m128i_result;
__m128 __m128_out, __m128_result;
__m128d __m128d_out, __m128d_result;
v2u64 v2u64_op0, v2u64_op1, v2u64_op2;
v4i32 v4i32_op0, v4i32_op1, v4i32_op2;
int int_op0, int_op1, i = 1, fail;
long int long_op0, long_op1;
long int long_int_out, long_int_result;
unsigned int unsigned_int_out, unsigned_int_result;
unsigned long int unsigned_long_int_out, unsigned_long_int_result;
v2u64_op0 = (v2u64){0x0000000000000006, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_h_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x00000000ffffffff, 0xffffffff00000000};
v2u64_op1 = (v2u64){0x0100010000010000, 0x0100010000000001};
__m128i_result = (__m128i){0x0000000000000000, 0xffffffff00000000};
__m128i_out = __lsx_vmulwod_h_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x000000003ddc5dac, 0x0000000000000000};
v2u64_op1 = (v2u64){0x387c7e0a133f2000, 0x67157b5100005000};
__m128i_result = (__m128i){0x0000000004870ba0, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_h_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xffff000000000155, 0xfefe000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000100000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_h_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x7fff7fff7fff7fff};
v2u64_op1 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff};
__m128i_result = (__m128i){0x0000000000000000, 0xffff8001ffff8001};
__m128i_out = __lsx_vmulwod_w_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x7ff0000000000000, 0x7ff0000000000000};
v2u64_op1 = (v2u64){0x7ff0000000000000, 0x7ff0000000000000};
__m128i_result = (__m128i){0x3ff0010000000000, 0x3ff0010000000000};
__m128i_out = __lsx_vmulwod_w_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_w_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x00009c7c00007176, 0x0000000000000000};
v2u64_op1 = (v2u64){0x00009c7c00007176, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_w_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_w_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x4400000000000000, 0x440ef000440ef000};
v2u64_op1 = (v2u64){0x000ef0000000003b, 0x3a8000003a800000};
__m128i_result = (__m128i){0x0003b80000000000, 0x0f8d33000f8d3300};
__m128i_out = __lsx_vmulwod_w_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0018001800180018, 0x0018001800180018};
v2u64_op1 = (v2u64){0xd83c8081ffff808f, 0x85bd6b0e94d89998};
__m128i_result = (__m128i){0xfffc45a851c40c18, 0xfff489b693120950};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xffffffffffffffe5, 0xffffffffffffffe5};
v2u64_op1 = (v2u64){0xffffffffffffffff, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000001, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x161d0c373c200826, 0x3e1f321529232736};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x3f8000003f800000, 0x3f8000003f800000};
v2u64_op1 = (v2u64){0x0001000000010001, 0x0001000000010001};
__m128i_result = (__m128i){0x00003f8000000000, 0x00003f8000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x7fff000000007fff, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000ffffffdfffdf, 0x0000ffffffffffff};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000ffff0000ffff};
v2u64_op1 = (v2u64){0x00000000c6fde000, 0x00000000ffffe000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x000fef01000f27ca, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0101000001000100, 0x0000010000010101};
__m128i_result = (__m128i){0x00000ffef0010000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x00000000ffffffe0, 0x0000000000000000};
v2u64_op1 = (v2u64){0x000000044525043c, 0x0000000005452505};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff};
v2u64_op1 = (v2u64){0x3fc03fc000000004, 0xffffffffffffffff};
__m128i_result = (__m128i){0xffffffffc03fc040, 0x0000000000000001};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x000000000000000a, 0x000000000000000a};
v2u64_op1 = (v2u64){0x0000000000000000, 0xffffffffffffffff};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x00000000ffffffff};
v2u64_op1 = (v2u64){0x7fff7fff7fff7f00, 0x00fe000100cf005f};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000004, 0x0000000400028000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_d_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xc00d060000000000, 0xc110000000000000};
v2u64_op1 = (v2u64){0x40f3fa0000000000, 0x3ff0000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0xf047ef0000000000};
__m128i_out = __lsx_vmulwod_q_d((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x00007fff7fff8000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_q_d((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xffff100000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x00000000000f0000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vmulwod_q_d((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
return 0;
}