blob: fd9db9c27c8e6840e2ecb4dca02c5f4fc9488d9e [file] [log] [blame]
#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){0x0000000000000000, 0x0000ffff0000ffff};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x000000ff000000ff};
__m128i_out = __lsx_vaddwev_h_bu((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0400040004000400, 0x0400040004000400};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_h_bu((__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){0x4d6814ef9c77ce46, 0x061006100613030c};
__m128i_result = (__m128i){0x016701ee01760145, 0x010f010f0112010b};
__m128i_out = __lsx_vaddwev_h_bu((__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_vaddwev_h_bu((__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){0x1000100010001000, 0x1000100010001000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_h_bu((__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){0x0000ffac0a000000, 0x0000000000000000};
__m128i_result = (__m128i){0x000000ac00000000, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_h_bu((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xf589caff5605f2fa, 0x0000000000000000};
v2u64_op1 = (v2u64){0x14eb6a002a406a00, 0x0000000014eb54ab};
__m128i_result = (__m128i){0x017400ff004500fa, 0x0000000000eb00ab};
__m128i_out = __lsx_vaddwev_h_bu((__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, 0x000000ff000000ff};
__m128i_result = (__m128i){0x0000000000000000, 0x000000ff000000ff};
__m128i_out = __lsx_vaddwev_w_hu((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x203e16d116de012b, 0x10f917d72d3d01e4};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x000016d10000012b, 0x000017d7000001e4};
__m128i_out = __lsx_vaddwev_w_hu((__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_vaddwev_w_hu((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x000000ff000000ff};
v2u64_op1 = (v2u64){0x7fffffff7fffffff, 0x0000ffff3fbfffff};
__m128i_result = (__m128i){0x0000ffff0000ffff, 0x000100fe000100fe};
__m128i_out = __lsx_vaddwev_w_hu((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0003c853c843c87e, 0x0003c853c843c87e};
v2u64_op1 = (v2u64){0xffffffffffffffff, 0xffffffff000000ff};
__m128i_result = (__m128i){0x0001c8520001c87d, 0x0001c8520000c97d};
__m128i_out = __lsx_vaddwev_w_hu((__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_vaddwev_w_hu((__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_vaddwev_w_hu((__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){0x0000ffff0000ffff, 0x0000ffff0000ffff};
__m128i_out = __lsx_vaddwev_w_hu((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xc8847ef6ed3f2000, 0x67eb85afb2ebb000};
v2u64_op1 = (v2u64){0x0000ffac0a000000, 0x0000000000000000};
__m128i_result = (__m128i){0x00017ea200002000, 0x000085af0000b000};
__m128i_out = __lsx_vaddwev_w_hu((__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_vaddwev_d_wu((__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){0x00000000ffffffff, 0x00000000ffffffff};
__m128i_out = __lsx_vaddwev_d_wu((__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){0x0000000000000024, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000024, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_d_wu((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0040007fff800000, 0x00307028003f80b0};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x00000000ff800000, 0x00000000003f80b0};
__m128i_out = __lsx_vaddwev_d_wu((__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){0x0000000000000001, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000001, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_d_wu((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x000000000000001f, 0x000000000000001f};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x000000000000001f, 0x000000000000001f};
__m128i_out = __lsx_vaddwev_d_wu((__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){0xffff80ffffff80ff, 0x8080808080808080};
__m128i_result = (__m128i){0x00000001ffff80fe, 0x000000018080807f};
__m128i_out = __lsx_vaddwev_d_wu((__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, 0x7fff000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__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){0x0000000000000001, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000001, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xffffffffffffffff, 0x00000000ffffffff};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0xffffffffffffffff, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__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){0xffffff8000000000, 0xffffff8000000000};
__m128i_result = (__m128i){0xffffff8000000000, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000180100100000, 0x1000000010000000};
v2u64_op1 = (v2u64){0x00000000b5207f80, 0x8000000000000000};
__m128i_result = (__m128i){0x00001801b5307f80, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000001300000013, 0x0000001300000013};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000001300000013, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xfffff208fffffa02, 0xffffe218ffffea10};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0xfffff208fffffa02, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__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){0x0000000080000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000080000000, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x7fff7fff7fff7ff8, 0x000000003fbf3fbf};
v2u64_op1 = (v2u64){0x000000000000000f, 0x0000000000000000};
__m128i_result = (__m128i){0x7fff7fff7fff8007, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000ffff00000000};
v2u64_op1 = (v2u64){0x0000000000000014, 0x0002000000000000};
__m128i_result = (__m128i){0x0000000000000014, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__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_vaddwev_q_du((__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){0x7f8000007f800000, 0x7f8000007f800000};
__m128i_result = (__m128i){0x7f8000007f800000, 0x0000000000000000};
__m128i_out = __lsx_vaddwev_q_du((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xffd27db010d20fbf, 0x6363636363636363};
v2u64_op1 = (v2u64){0xffd27db010d20fbf, 0x6363636363636363};
__m128i_result = (__m128i){0xffa4fb6021a41f7e, 0x0000000000000001};
__m128i_out = __lsx_vaddwev_q_du((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
return 0;
}