Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
188 changes: 188 additions & 0 deletions SingleSource/UnitTests/Vector/LSX/lsx-vabsd-1.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
#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, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vabsd_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){0x00000000ffff0000, 0xfda9b23a624082fd};
__m128i_result = (__m128i){0x0000000001010000, 0x03574e3a62407e03};
__m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x7fffffff7fffffff, 0x8000000080000000};
v2u64_op1 = (v2u64){0x0014fff500000000, 0xfffd000700000000};
__m128i_result = (__m128i){0x7f15000a7f010101, 0x7f03000780000000};
__m128i_out = __lsx_vabsd_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_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x0000000000000000, 0x7fffffffffffffff};
v2u64_op1 = (v2u64){0x000000127fffffea, 0x000000060000000e};
__m128i_result = (__m128i){0x000000127f010116, 0x7f0101070101010f};
__m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x000000000000000b, 0x000000000000000b};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x000000000000000b, 0x000000000000000b};
__m128i_out = __lsx_vabsd_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){0xc8847ef6ed3f2000, 0x67eb85af0000b000};
__m128i_result = (__m128i){0x387c7e0a133f2000, 0x67157b5100005000};
__m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0xfffbfffefffe01ff, 0xfff7fffefffa01ff};
v2u64_op1 = (v2u64){0xfcfcfcfcfcfcfcfd, 0xfcfcfcfcfcfcfcfd};
__m128i_result = (__m128i){0x0301030203020502, 0x0305030203020502};
__m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x5728dcc85ac760d2, 0x4ee376188658d85f};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x572824385a39602e, 0x4e1d76187a58285f};
__m128i_out = __lsx_vabsd_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_vabsd_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){0x27b1b106b8145f50, 0xf654ad7447e59090};
__m128i_result = (__m128i){0x274f4f0648145f50, 0x0a545374471b7070};
__m128i_out = __lsx_vabsd_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_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x407c2ca3d3430357, 0x21f32eafa486fd38};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x407c2ca32cbd0357, 0x21f32eaf5b7a02c8};
__m128i_out = __lsx_vabsd_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_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x000000003bfb4000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x000000003bfb4000, 0x0000000000000000};
__m128i_out = __lsx_vabsd_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){0x0000ffffffffffff, 0x0000ffffffffffff};
__m128i_result = (__m128i){0x0000000100010001, 0x0000000100010001};
__m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0xffffffffffffffdf, 0xffffffffffffffff};
v2u64_op1 = (v2u64){0xffff0000ffff0000, 0xffff0000ffff0000};
__m128i_result = (__m128i){0x0000000100000021, 0x0000000100000001};
__m128i_out = __lsx_vabsd_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_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x003f0000ffffffff, 0x003f0000ffffffff};
v2u64_op1 = (v2u64){0x0003000000012020, 0x000700000004e000};
__m128i_result = (__m128i){0x003c000000022021, 0x0038000000051fff};
__m128i_out = __lsx_vabsd_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_vabsd_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_vabsd_w((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0xbe081c963e6fee68, 0x9c9d9b9bbfaa20e9};
v2u64_op1 = (v2u64){0x0000fd1654860000, 0x0000feff23560000};
__m128i_result = (__m128i){0x41f8e08016161198, 0x6363636463abdf17};
__m128i_out = __lsx_vabsd_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){0x0000000000000001, 0x0000000000000001};
__m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0xff01fe0400000006, 0x0000000800000000};
v2u64_op1 = (v2u64){0x000000000005fffa, 0x0000000000000000};
__m128i_result = (__m128i){0x00fe01fc0005fff4, 0x0000000800000000};
__m128i_out = __lsx_vabsd_d((__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){0xfffffffffffffffa, 0xfffffffffffffffa};
__m128i_result = (__m128i){0x0000000000000005, 0x0000000000000005};
__m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x017f03000000ff00, 0x010003f00000ff00};
v2u64_op1 = (v2u64){0x017f03000000ff00, 0x010003f00000ff00};
__m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000};
__m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x0000000000000001, 0x0000000000000001};
v2u64_op1 = (v2u64){0x0000000000000000, 0x000000001fffffff};
__m128i_result = (__m128i){0x0000000000000001, 0x000000001ffffffe};
__m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

v2u64_op0 = (v2u64){0x0000ffac0a000000, 0x0000000000000000};
v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000};
__m128i_result = (__m128i){0x0000ffac0a000000, 0x0000000000000000};
__m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1);
check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__);

return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exit 0
Loading