blob: fcf1e6a3435481707afabf0bc3e92d82667616fd [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;
v8i32 v8i32_op0, v8i32_op1, v8i32_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;
v4u64_op0 = (v4u64){0x0100010001000000, 0x0100010001000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x0001000100010001, 0x0001000100010001,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0xf);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xfff0000000000000, 0xfff0000000000000,
0xfff0000000000000, 0xfff0000000000000};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0xf0000000f0000000,
0x0000000000000000, 0xf0000000f0000000};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0x0);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xffffffffffffffff, 0xffffffffffffffff,
0xffffffffffffffff, 0xffffffffffffffff};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0404040404040404,
0x0000000000000000, 0x0404040404040404};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0xe);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000ffff0000ffff,
0xffffffffffffffff, 0x0000ffff0000ffff};
v4u64_op1 = (v4u64){0x000000000000ffff, 0x000000000000ffff,
0x000000000000ffff, 0x000000000000ffff};
__m256i_result = (__m256i){0x0000000400000004, 0x0004000400000000,
0x0000000400000004, 0x0004000404040404};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0xe);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0x1);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x80208020c22080a7,
0x0000000000000000, 0x80208020c22080a7};
v4u64_op1 = (v4u64){0xdfc2ff20df80ffa7, 0xdf80ff20df80ff20,
0xdfc2ff20df80ffa7, 0xdf80ff20df80ff20};
__m256i_result = (__m256i){0xbffebffec0febfff, 0x0000840100000000,
0xbffebffec0febfff, 0x0000840100000000};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0x7);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0x3);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0xf);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000001200000012, 0x0000001200000012,
0x0000001200000012, 0x0000001200000012};
v4u64_op1 = (v4u64){0xffffffffffffffff, 0xffffffffffffffff,
0xffffffffffffffff, 0xffffffffffffffff};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0x7);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000812000008120, 0x000081220000812c,
0x0000812000008120, 0x000081220000812c};
v4u64_op1 = (v4u64){0x7f7f7f7f7f7f7f7f, 0x7f7f7f7f7f7f7f7f,
0x7f7f7f7f7f7f7f7f, 0x7f7f7f7f7f7f7f7f};
__m256i_result = (__m256i){0xfefefefefefefefe, 0x0005000500050005,
0xfefefefefefefefe, 0x0005000500050005};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0x6);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xffffffffffffffff, 0xffffffffffffffff,
0xffffffffffffffff, 0xffffffffffffffff};
v4u64_op1 = (v4u64){0x7fffffff80000000, 0x7fffffff80000000,
0x7fffffff80000000, 0x7fffffff80000000};
__m256i_result = (__m256i){0xffff0000ffff0000, 0xffffffffffffffff,
0xffff0000ffff0000, 0xffffffffffffffff};
__m256i_out = __lasx_xvsrlrni_b_h((__m256)v4u64_op0, (__m256)v4u64_op1, 0x0);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xffffffffffffffff, 0xffffffffffffffff,
0xffffffffffffffff, 0xffffffffffffffff};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0020002000200020,
0x0000000000000000, 0x0020002000200020};
__m256i_out = __lasx_xvsrlrni_h_w((__m256)v4u64_op0, (__m256)v4u64_op1, 0x1b);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x817f11ed81800ff0, 0x00000000000000fe,
0x817f11ed81800ff0, 0x00000000000000fe};
v4u64_op1 = (v4u64){0x817f11ed81800ff0, 0x00000000000000fe,
0x817f11ed81800ff0, 0x00000000000000fe};
__m256i_result = (__m256i){0x00000004fc480040, 0x00000004fc480040,
0x00000004fc480040, 0x00000004fc480040};
__m256i_out = __lasx_xvsrlrni_h_w((__m256)v4u64_op0, (__m256)v4u64_op1, 0x6);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xffffffffffffffff, 0x0000000000000000,
0xffffffffffffffff, 0x0000000000000000};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_h_w((__m256)v4u64_op0, (__m256)v4u64_op1, 0xf);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xfff0fff0fff0fc00, 0x0000000000000000,
0xfff0fff0fff0fc00, 0x0000000000000000};
v4u64_op1 = (v4u64){0xffffffffff000000, 0x0000000000000000,
0xffffffffff000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000008000, 0x00000000f880f87e,
0x0000000000008000, 0x00000000f880f87e};
__m256i_out = __lasx_xvsrlrni_h_w((__m256)v4u64_op0, (__m256)v4u64_op1, 0x9);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0001ffffffffffff, 0x00000003ffffffff,
0x0001ffffffffffff, 0x00000003ffffffff};
v4u64_op1 = (v4u64){0x000000010000005e, 0x0000000000000000,
0x000000010000005e, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_w_d((__m256)v4u64_op0, (__m256)v4u64_op1, 0x3c);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0xffffffff00000000,
0x0000000000000000, 0xffffffff00000000};
v4u64_op1 = (v4u64){0x0000000000000000, 0xffffffff00000000,
0x0000000000000000, 0xffffffff00000000};
__m256i_result = (__m256i){0x0040000000000000, 0x0040000000000000,
0x0040000000000000, 0x0040000000000000};
__m256i_out = __lasx_xvsrlrni_w_d((__m256)v4u64_op0, (__m256)v4u64_op1, 0x2a);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x7ff0000000000000, 0x7ff0000000000000,
0x7ff0000000000000, 0x7ff0000000000000};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000020,
0x0000000000000000, 0x0000000000000020};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x7a);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000808000008081, 0x0000808000008080};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000081};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x68);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x00000000002a5429, 0x0000000000000000,
0x00000000002a5429, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x30);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000801380f300fb, 0x0000000000000000,
0x0000801380f380fe, 0x0000000000000000};
v4u64_op1 = (v4u64){0x00000000007f3a40, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x42);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x56);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xffffc0c0ffffbfc0, 0xffffffffffffffff,
0xffffc0c0ffffbfc0, 0xffffffffffffffff};
v4u64_op1 = (v4u64){0x00003f3f0000400d, 0x0000000000000000,
0x00003f3f0000400d, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x1000000000000000,
0x0000000000000000, 0x1000000000000000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x44);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x00000000ffffffff,
0x0000000000000000, 0x00000000ffffffff};
v4u64_op1 = (v4u64){0x0000000000000000, 0x1000000000000000,
0x0000000000000000, 0x1000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0xffffe00000000000,
0x0000000000000000, 0xffffe00000000000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x13);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xfc00000000000048, 0x3ff0000000000000,
0xfc00000000000048, 0x3ff0000000000000};
v4u64_op1 = (v4u64){0xbfffa004fffd8000, 0x0000000000000000,
0xbfffa004fffd8000, 0x0000000000000000};
__m256i_result = (__m256i){0x00002fffe8013fff, 0x00003f0000000000,
0x00002fffe8013fff, 0x00003f0000000000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x12);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000080800000808,
0x0000000000000000, 0x0000080800000808};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000101000000000,
0x0000000000000000, 0x0000101000000000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x1f);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0xff00010001000100, 0x0100010001000100,
0xff00010001000100, 0x0100010001000100};
v4u64_op1 = (v4u64){0xffffffffffffffff, 0xffffffffffffffff,
0xffffffffffffffff, 0xffffffffffffffff};
__m256i_result = (__m256i){0x0000004000000000, 0x0000000040004000,
0x0000004000000000, 0x0000000040004000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x5a);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x028da7fe15020000, 0x00b2fe28e4420609,
0x028da7fe15020000, 0x00b2fe28e4420609};
v4u64_op1 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000000000000, 0x0000000000000598,
0x0000000000000000, 0x0000000000000598};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0x6d);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
v4u64_op0 = (v4u64){0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000};
v4u64_op1 = (v4u64){0x0000000800000010, 0x0000000000000000,
0x0000000800000010, 0x0000000000000000};
__m256i_result = (__m256i){0x0000000002000000, 0x0000000000000000,
0x0000000002000000, 0x0000000000000000};
__m256i_out = __lasx_xvsrlrni_d_q((__m256)v4u64_op0, (__m256)v4u64_op1, 0xa);
check_lasx_out(&__m256i_result, &__m256i_out, sizeof(__m256i_out), __FILE__, __LINE__);
return 0;
}