| #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){0xffffffefffffffef, 0xffffffefffffffef}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0xffffffefffffffef, 0xffffffefffffffef}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000000000000, 0xffffffff00000000}; |
| v2u64_op1 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0101010100000000}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000005555555554, 0x0000005555555554}; |
| v2u64_op1 = (v2u64){0x0000fff1000ffffe, 0x00000001000f000e}; |
| __m128i_result = (__m128i){0x0000002a55000001, 0x0000002a55005501}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0004000000040000, 0x0004000000040000}; |
| v2u64_op1 = (v2u64){0xfff6fff6fff6fff6, 0xfff6fff6fff6fff6}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x7f8000007f800000, 0x7f8000007f800000}; |
| v2u64_op1 = (v2u64){0x003e00d100de002b, 0x00f900d7003d00e4}; |
| __m128i_result = (__m128i){0x7f0200007f020000, 0x7f4000007f040000}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0xfffffffe000000f6, 0xffffffffffffff00}; |
| v2u64_op1 = (v2u64){0xffffffff00000000, 0xffffffff00000000}; |
| __m128i_result = (__m128i){0x01010101000000f6, 0x01010101ffffff00}; |
| __m128i_out = __lsx_vsrl_b((__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){0x8000000080000000, 0x8000000080000000}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x00ff00ffffffffff, 0x00ffffff00ff00ff}; |
| v2u64_op1 = (v2u64){0x00000001ffffff29, 0x00000049000000c0}; |
| __m128i_result = (__m128i){0x00ff007f0101017f, 0x00ffff7f00ff00ff}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000000000000, 0x5d7f5d807fea807f}; |
| v2u64_op1 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000100010100}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000080000000, 0x0000000080000000}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x0000000080000000, 0x0000000080000000}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0xffffffffe0000000, 0xffffffffe0000000}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0xffffffffe0000000, 0xffffffffe0000000}; |
| __m128i_out = __lsx_vsrl_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0xffffffffffffffff, 0x0000000000000000}; |
| v2u64_op1 = (v2u64){0x0000000900000009, 0x0000000000000000}; |
| __m128i_result = (__m128i){0xffffff7fffffff7f, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_b((__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_vsrl_b((__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){0x4f8000004f7fff02, 0x4688500046f6a000}; |
| __m128i_result = (__m128i){0xffffffff00013fff, 0x00ffffff03ffffff}; |
| __m128i_out = __lsx_vsrl_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x1000100010001000, 0x1000100010001000}; |
| v2u64_op1 = (v2u64){0x0202fe02fd020102, 0x0002000200020002}; |
| __m128i_result = (__m128i){0x0400040004000400, 0x0400040004000400}; |
| __m128i_out = __lsx_vsrl_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){0x61608654a2d4f6da, 0x7ff0000000000000}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000ff0000ff0000, 0x0000000000000000}; |
| v2u64_op1 = (v2u64){0x0000ff0000ff0000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x0000ff0000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000000ff00ff, 0x0000000000ff00ff}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0xffffffffffffffff}; |
| __m128i_result = (__m128i){0x0000000000ff00ff, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_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_vsrl_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000000000000, 0x00000000f3040705}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x00000000f3040705}; |
| __m128i_out = __lsx_vsrl_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){0x0002000200020002, 0x0002000200020002}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000100000001, 0xffffff2900000000}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000401000}; |
| __m128i_result = (__m128i){0x0000000100000001, 0xffffff2900000000}; |
| __m128i_out = __lsx_vsrl_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_vsrl_w((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000007000000, 0x000000000000fb01}; |
| v2u64_op1 = (v2u64){0x0002000000000007, 0x0006000000040000}; |
| __m128i_result = (__m128i){0x00000000000e0000, 0x000000000000fb01}; |
| __m128i_out = __lsx_vsrl_w((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x00ff003000ff00a0, 0x00ff000100ff00fe}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x00ff003000ff00a0, 0x00ff000100ff00fe}; |
| __m128i_out = __lsx_vsrl_w((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0xfffffffe7fffffff, 0xfffffffefffffffe}; |
| v2u64_op1 = (v2u64){0x000000000001fd02, 0x0000000000000000}; |
| __m128i_result = (__m128i){0xfffffffe1fffffff, 0xfffffffefffffffe}; |
| __m128i_out = __lsx_vsrl_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){0xffffffffffffffff, 0xffffffffffffffff}; |
| __m128i_out = __lsx_vsrl_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_vsrl_w((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x80000000fff80000, 0x80000000fff8fff8}; |
| v2u64_op1 = (v2u64){0x7f800000fff80000, 0x7f800000fff8fff8}; |
| __m128i_result = (__m128i){0x80000000fff80000, 0x0000000000000080}; |
| __m128i_out = __lsx_vsrl_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){0x00000100fffffefd, 0x0000750500006541}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x00000001fffffffe, 0x00000001fffffffe}; |
| v2u64_op1 = (v2u64){0xc2f9bafac2fac2fa, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x00000001fffffffe}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0804080407040804, 0x0101080408040804}; |
| v2u64_op1 = (v2u64){0x00000000010a000b, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x000100810080e081, 0x0101080408040804}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0xfffffffffffffffe, 0xffffffffffffffff}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0xfffffffffffffffe, 0xffffffffffffffff}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000100000e60, 0x00000021ffffffdf}; |
| v2u64_op1 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0101fe8700000000, 0x0101fe870101fe87}; |
| v2u64_op1 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_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){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_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){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x000400530050ffa6, 0xffff007fff810001}; |
| v2u64_op1 = (v2u64){0x00000000ffffffff, 0x00000000ffffffff}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000001}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000000000000, 0xffffffff800fff01}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x000000007ff000ff}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000001}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000000000000000, 0x4399d3221a29d3f2}; |
| v2u64_op1 = (v2u64){0x29ca096f235819c2, 0x000056f64adb9464}; |
| __m128i_result = (__m128i){0x0000000000000000, 0x0000000004399d32}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| v2u64_op0 = (v2u64){0x0000ffffffffffff, 0x0000ffffffffffff}; |
| v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| __m128i_result = (__m128i){0x0000ffffffffffff, 0x0000ffffffffffff}; |
| __m128i_out = __lsx_vsrl_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| |
| return 0; |
| } |