blob: 8d540bac645d5262e19b473f90dd46f54d35f22b [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){0x000201000000000b, 0x0000000b0000000b};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0005000501800005};
__m128i_out = __lsx_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0x1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xffffffff00000009, 0x0000000000000008};
v2u64_op1 = (v2u64){0xd705c77a7025c899, 0x697eba2bedfa9c82};
__m128i_result = (__m128i){0x03fdfffcfefe03fe, 0x00000000ffff0000};
__m128i_out = __lsx_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0xd);
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_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0xa);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x40f0001000000000, 0x40f0001000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x1e0200001e020000};
__m128i_out = __lsx_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0x3);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x2020202020207fff, 0x2020202020202020};
__m128i_result = (__m128i){0x01010101010101ff, 0x0000000000000000};
__m128i_out = __lsx_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0x5);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x03f21e0114bf19da, 0x00005dcbe7e830c0};
v2u64_op1 = (v2u64){0x000014bf000019da, 0x000003f200001e01};
__m128i_result = (__m128i){0x0000000100010001, 0x0005fe0300010101};
__m128i_out = __lsx_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0xc);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x8080636380806363, 0x808080e280808080};
__m128i_result = (__m128i){0x8080808080638063, 0x0000000000000000};
__m128i_out = __lsx_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0x8);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000003020302};
v2u64_op1 = (v2u64){0xffffffffffffff81, 0xffffffffffffffff};
__m128i_result = (__m128i){0xfffffffffffffffe, 0x00000c0c00000000};
__m128i_out = __lsx_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0x6);
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_vsrani_b_h((__m128)v2u64_op0, (__m128)v2u64_op1, 0xa);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0100010000000000, 0x0100000001000100};
v2u64_op1 = (v2u64){0x00ff00ffffffffff, 0x00ffffff00ff00ff};
__m128i_result = (__m128i){0xffff00ff00ffffff, 0x0000010001000000};
__m128i_out = __lsx_vsrani_h_w((__m128)v2u64_op0, (__m128)v2u64_op1, 0x0);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x57cb857100001a46, 0x001ffce00016fb41};
v2u64_op1 = (v2u64){0x7bffffffffffffff, 0xfbffffffffffffff};
__m128i_result = (__m128i){0xfffeffff001effff, 0x0000000000150000};
__m128i_out = __lsx_vsrani_h_w((__m128)v2u64_op0, (__m128)v2u64_op1, 0x1a);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000001};
v2u64_op1 = (v2u64){0x003f000000000000, 0xfff082f000000000};
__m128i_result = (__m128i){0xffff000000000000, 0x0000000000000000};
__m128i_out = __lsx_vsrani_h_w((__m128)v2u64_op0, (__m128)v2u64_op1, 0x17);
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_vsrani_h_w((__m128)v2u64_op0, (__m128)v2u64_op1, 0x6);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x1f5533a694f902c0, 0xfffffacdb6dbecac};
v2u64_op1 = (v2u64){0x1f54e0ab00000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000001f50000, 0xfffffb6d01f5f94f};
__m128i_out = __lsx_vsrani_h_w((__m128)v2u64_op0, (__m128)v2u64_op1, 0x14);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0800080008000800, 0x0800080008000800};
__m128i_result = (__m128i){0x0040004000400040, 0x0000000000000000};
__m128i_out = __lsx_vsrani_w_d((__m128)v2u64_op0, (__m128)v2u64_op1, 0x15);
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_vsrani_w_d((__m128)v2u64_op0, (__m128)v2u64_op1, 0x1f);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0f07697100000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000076971000};
__m128i_out = __lsx_vsrani_w_d((__m128)v2u64_op0, (__m128)v2u64_op1, 0x14);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0xfffffffffffffffc, 0xfffffffffffffffc};
v2u64_op1 = (v2u64){0x0000000000000000, 0xffffffff00000000};
__m128i_result = (__m128i){0xffffffff00000000, 0xffffffffffffffff};
__m128i_out = __lsx_vsrani_w_d((__m128)v2u64_op0, (__m128)v2u64_op1, 0x3a);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x110053f401e7cced, 0x5847b72626ce61ef};
v2u64_op1 = (v2u64){0x0000000000000000, 0x5847b72626ce61ef};
__m128i_result = (__m128i){0x0005847b00000000, 0x0005847b00011005};
__m128i_out = __lsx_vsrani_w_d((__m128)v2u64_op0, (__m128)v2u64_op1, 0x2c);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x438ff81ff81ff820};
v2u64_op1 = (v2u64){0x0000000000000000, 0x03ff03ff03ff03ff};
__m128i_result = (__m128i){0x0000000000000003, 0x0000000000000043};
__m128i_out = __lsx_vsrani_d_q((__m128)v2u64_op0, (__m128)v2u64_op1, 0x78);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000002020202, 0x0000000000000000};
v2u64_op1 = (v2u64){0xffffffffffffffff, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vsrani_d_q((__m128)v2u64_op0, (__m128)v2u64_op1, 0x5b);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000100000001, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000040000};
__m128i_out = __lsx_vsrani_d_q((__m128)v2u64_op0, (__m128)v2u64_op1, 0xe);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x00ff00ff00ff00ff, 0x00ff00ff00ff00ff};
v2u64_op1 = (v2u64){0xf0bc9a5278285a4a, 0x62cbf96e4acfaf40};
__m128i_result = (__m128i){0x62cbf96e4acfaf40, 0x00ff00ff00ff00ff};
__m128i_out = __lsx_vsrani_d_q((__m128)v2u64_op0, (__m128)v2u64_op1, 0x40);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x000000000000001d, 0x000000000000001d};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vsrani_d_q((__m128)v2u64_op0, (__m128)v2u64_op1, 0x63);
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, 0xffffffffffffffff};
__m128i_out = __lsx_vsrani_d_q((__m128)v2u64_op0, (__m128)v2u64_op1, 0x58);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);
return 0;
}