blob: 324e6a20a9cfdfb46fad4702995d90582450ff72 [file] [edit]
#include "lasx_test_util.h"
#include <lasxintrin.h>
int
main ()
{
__m256i __m256i_out, __m256i_result;
__m256 __m256_out, __m256_result;
__m256d __m256d_out, __m256d_result;
v4u64 v4u64_op0, v4u64_op1, v4u64_op2, v4u64_result;
v8i32 v8i32_op0, v8i32_op1, v8i32_op2, v8i32_result;
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;
v8i32_op0 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x00000010, 0x00000008, 0x00000000, 0x00000005,
0x00000000, 0x00000011, 0x0000000c, 0x00000003};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x6d6d6d6d, 0x6d6d6d6d, 0x6d6d6d6d, 0x6d6d6d6d,
0x6d6d6d6d, 0x6d6d6d6d, 0x6d6d6d6d, 0x6d6d6d6d};
v8i32_op1 = (v8i32){0x6d6d6d6d, 0x6d6d6d6d, 0x6d6d6d6d, 0x6d6d6d6d,
0x6d6d6d6d, 0x6d6d6d6d, 0x6d6d6d6d, 0x6d6d6d6d};
__m256i_result = (__m256i){0x7c007c007c007c00, 0x7c007c007c007c00,
0x7c007c007c007c00, 0x7c007c007c007c00};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff};
v8i32_op1 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256i_result = (__m256i){0x0000000000000000, 0xffffffffffffffff,
0x0000000000000000, 0xffffffffffffffff};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x00010000, 0x00020000, 0x00020000, 0x00020000,
0x00010000, 0x00020000, 0x00020000, 0x00020000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0xffffffff, 0xffffffff, 0x00000000, 0x00000000,
0xffffffff, 0xffffffff, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x8f00ffff, 0x8e8e8e8e, 0x71010101, 0x71717171,
0x8f00ffff, 0x8e8e8e8e, 0x71010101, 0x71717171};
__m256i_result = (__m256i){0x7c007c0080008000, 0x00000000ffffffff,
0x7c007c0080008000, 0x00000000ffffffff};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0xfff10000, 0xfff10000, 0x00000000, 0x00000000,
0xfff10000, 0xfff10000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0xfff10000, 0xfff10000, 0x00000000, 0x00000000,
0xfff10000, 0xfff10000, 0x00000000, 0x00000000};
__m256i_result = (__m256i){0x00000000ff88ff88, 0x00000000ff88ff88,
0x00000000ff88ff88, 0x00000000ff88ff88};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x00040000, 0x00000000, 0x00000000, 0x00000000,
0x00040000, 0x00000000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x00010100, 0xff0101fd, 0x3f003f00, 0xff00ff00,
0x00010100, 0xff0101fd, 0x3f003f00, 0xff00ff00};
v8i32_op1 = (v8i32){0xff000100, 0xfe0000bc, 0x00fffeff, 0x01ffff43,
0xff000100, 0xfe0000bc, 0x00fffeff, 0x01ffff43};
__m256i_result = (__m256i){0x00000000fc00fc00, 0xfc003802fc000000,
0x00000000fc00fc00, 0xfc003802fc000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v8i32_op0 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
v8i32_op1 = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvfcvt_h_s((__m256)v8i32_op0, (__m256)v8i32_op1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xcc9b89f2f6cef440, 0xffffffffffffffff,
0x0cc08723ff900001, 0x0000000000000000};
v4u64_op1 = (v4u64){0xffffffff00000000, 0xffffffffffffffff,
0xffffffff00000000, 0xffffffffffffffff};
v8i32_result = (v8i32){0xfffffff8, 0xffffffff, 0xff800000, 0xffffffff,
0xfffffff8, 0xffffffff, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000ffff0000ffff, 0x0000ffff0000ffff,
0x0000ffff0000ffff, 0x0000ffff0000ffff};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v8i32_result = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0xffffffffffffffff, 0xffffffffffffffff,
0xffffffffffffffff, 0xffffffffffffffff};
v8i32_result = (v8i32){0xffffffff, 0xffffffff, 0x00000000, 0x00000000,
0xffffffff, 0xffffffff, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0xdbc8000000003fff,
0x0000000000000000, 0xdbc8000000003fff};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v8i32_result = (v8i32){0x00000000, 0x00000000, 0x00000000, 0xff800000,
0x00000000, 0x00000000, 0x00000000, 0xff800000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0xff800000ff800000, 0xff800000ff800000,
0xff800000ff800000, 0xff800000ff800000};
v8i32_result = (v8i32){0xff800000, 0xff800000, 0x00000000, 0x00000000,
0xff800000, 0xff800000, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000ffff0000ffff,
0x0000000000000000, 0x0000ffff0000ffff};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v8i32_result = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x00003f784000ff80, 0xf7f8f7f84000fff9,
0x00003f784000ff80, 0xf7f8f7f8f800f800};
v8i32_result = (v8i32){0x00000000, 0xff800000, 0x00000000, 0x00000000,
0x00000000, 0xff800000, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000555500005555, 0x0000555500005555,
0x0000555500005555, 0x0000555500005555};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v8i32_result = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0xffffffffb7bc02a0, 0xffffffffb680489b,
0xffffffffb7bbdec0, 0xffffffffb6804cb9};
v8i32_result = (v8i32){0xfffffffd, 0xfffffffd, 0x00000000, 0x00000000,
0xfffffffd, 0xfffffffd, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x0101010201010102, 0x0101010202020203,
0x0101010201010102, 0x0101010202020203};
v8i32_result = (v8i32){0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x3fff3fff3fff3fc4, 0x3fff3fff3fff3fff,
0x3fff3fff3fff3fc4, 0x3fff3fff3fff3fff};
v8i32_result = (v8i32){0x3ff9fffa, 0x3ff9fffa, 0x00000000, 0x00000000,
0x3ff9fffa, 0x3ff9fffa, 0x00000000, 0x00000000};
__m256_out = __lasx_xvfcvt_s_d((__m256)v4u64_op0, (__m256)v4u64_op1);
check_lasx_out(&v8i32_result, &__m256_out, sizeof(__m256_out), __FILE__, __LINE__);
return 0;
}