|
| 1 | +#include "lsx_test_util.h" |
| 2 | +#include <lsxintrin.h> |
| 3 | + |
| 4 | +int |
| 5 | +main () |
| 6 | +{ |
| 7 | + __m128i __m128i_out, __m128i_result; |
| 8 | + __m128 __m128_out, __m128_result; |
| 9 | + __m128d __m128d_out, __m128d_result; |
| 10 | + v2u64 v2u64_op0, v2u64_op1, v2u64_op2; |
| 11 | + v4i32 v4i32_op0, v4i32_op1, v4i32_op2; |
| 12 | + |
| 13 | + int int_op0, int_op1, i = 1, fail; |
| 14 | + long int long_op0, long_op1; |
| 15 | + long int long_int_out, long_int_result; |
| 16 | + unsigned int unsigned_int_out, unsigned_int_result; |
| 17 | + unsigned long int unsigned_long_int_out, unsigned_long_int_result; |
| 18 | + |
| 19 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 20 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 21 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 22 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 23 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 24 | + |
| 25 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 26 | + v2u64_op1 = (v2u64){0x00000000ffff0000, 0xfda9b23a624082fd}; |
| 27 | + __m128i_result = (__m128i){0x0000000001010000, 0x03574e3a62407e03}; |
| 28 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 29 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 30 | + |
| 31 | + v2u64_op0 = (v2u64){0x7fffffff7fffffff, 0x8000000080000000}; |
| 32 | + v2u64_op1 = (v2u64){0x0014fff500000000, 0xfffd000700000000}; |
| 33 | + __m128i_result = (__m128i){0x7f15000a7f010101, 0x7f03000780000000}; |
| 34 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 35 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 36 | + |
| 37 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 38 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 39 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 40 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 41 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 42 | + |
| 43 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x7fffffffffffffff}; |
| 44 | + v2u64_op1 = (v2u64){0x000000127fffffea, 0x000000060000000e}; |
| 45 | + __m128i_result = (__m128i){0x000000127f010116, 0x7f0101070101010f}; |
| 46 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 47 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 48 | + |
| 49 | + v2u64_op0 = (v2u64){0x000000000000000b, 0x000000000000000b}; |
| 50 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 51 | + __m128i_result = (__m128i){0x000000000000000b, 0x000000000000000b}; |
| 52 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 53 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 54 | + |
| 55 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 56 | + v2u64_op1 = (v2u64){0xc8847ef6ed3f2000, 0x67eb85af0000b000}; |
| 57 | + __m128i_result = (__m128i){0x387c7e0a133f2000, 0x67157b5100005000}; |
| 58 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 59 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 60 | + |
| 61 | + v2u64_op0 = (v2u64){0xfffbfffefffe01ff, 0xfff7fffefffa01ff}; |
| 62 | + v2u64_op1 = (v2u64){0xfcfcfcfcfcfcfcfd, 0xfcfcfcfcfcfcfcfd}; |
| 63 | + __m128i_result = (__m128i){0x0301030203020502, 0x0305030203020502}; |
| 64 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 65 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 66 | + |
| 67 | + v2u64_op0 = (v2u64){0x5728dcc85ac760d2, 0x4ee376188658d85f}; |
| 68 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 69 | + __m128i_result = (__m128i){0x572824385a39602e, 0x4e1d76187a58285f}; |
| 70 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 71 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 72 | + |
| 73 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 74 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 75 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 76 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 77 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 78 | + |
| 79 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 80 | + v2u64_op1 = (v2u64){0x27b1b106b8145f50, 0xf654ad7447e59090}; |
| 81 | + __m128i_result = (__m128i){0x274f4f0648145f50, 0x0a545374471b7070}; |
| 82 | + __m128i_out = __lsx_vabsd_b((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 83 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 84 | + |
| 85 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 86 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 87 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 88 | + __m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 89 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 90 | + |
| 91 | + v2u64_op0 = (v2u64){0x407c2ca3d3430357, 0x21f32eafa486fd38}; |
| 92 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 93 | + __m128i_result = (__m128i){0x407c2ca32cbd0357, 0x21f32eaf5b7a02c8}; |
| 94 | + __m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 95 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 96 | + |
| 97 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 98 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 99 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 100 | + __m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 101 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 102 | + |
| 103 | + v2u64_op0 = (v2u64){0x000000003bfb4000, 0x0000000000000000}; |
| 104 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 105 | + __m128i_result = (__m128i){0x000000003bfb4000, 0x0000000000000000}; |
| 106 | + __m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 107 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 108 | + |
| 109 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 110 | + v2u64_op1 = (v2u64){0x0000ffffffffffff, 0x0000ffffffffffff}; |
| 111 | + __m128i_result = (__m128i){0x0000000100010001, 0x0000000100010001}; |
| 112 | + __m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 113 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 114 | + |
| 115 | + v2u64_op0 = (v2u64){0xffffffffffffffdf, 0xffffffffffffffff}; |
| 116 | + v2u64_op1 = (v2u64){0xffff0000ffff0000, 0xffff0000ffff0000}; |
| 117 | + __m128i_result = (__m128i){0x0000000100000021, 0x0000000100000001}; |
| 118 | + __m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 119 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 120 | + |
| 121 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 122 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 123 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 124 | + __m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 125 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 126 | + |
| 127 | + v2u64_op0 = (v2u64){0x003f0000ffffffff, 0x003f0000ffffffff}; |
| 128 | + v2u64_op1 = (v2u64){0x0003000000012020, 0x000700000004e000}; |
| 129 | + __m128i_result = (__m128i){0x003c000000022021, 0x0038000000051fff}; |
| 130 | + __m128i_out = __lsx_vabsd_h((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 131 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 132 | + |
| 133 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 134 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 135 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 136 | + __m128i_out = __lsx_vabsd_w((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 137 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 138 | + |
| 139 | + v2u64_op0 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 140 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 141 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 142 | + __m128i_out = __lsx_vabsd_w((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 143 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 144 | + |
| 145 | + v2u64_op0 = (v2u64){0xbe081c963e6fee68, 0x9c9d9b9bbfaa20e9}; |
| 146 | + v2u64_op1 = (v2u64){0x0000fd1654860000, 0x0000feff23560000}; |
| 147 | + __m128i_result = (__m128i){0x41f8e08016161198, 0x6363636463abdf17}; |
| 148 | + __m128i_out = __lsx_vabsd_w((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 149 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 150 | + |
| 151 | + v2u64_op0 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff}; |
| 152 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 153 | + __m128i_result = (__m128i){0x0000000000000001, 0x0000000000000001}; |
| 154 | + __m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 155 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 156 | + |
| 157 | + v2u64_op0 = (v2u64){0xff01fe0400000006, 0x0000000800000000}; |
| 158 | + v2u64_op1 = (v2u64){0x000000000005fffa, 0x0000000000000000}; |
| 159 | + __m128i_result = (__m128i){0x00fe01fc0005fff4, 0x0000000800000000}; |
| 160 | + __m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 161 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 162 | + |
| 163 | + v2u64_op0 = (v2u64){0xffffffffffffffff, 0xffffffffffffffff}; |
| 164 | + v2u64_op1 = (v2u64){0xfffffffffffffffa, 0xfffffffffffffffa}; |
| 165 | + __m128i_result = (__m128i){0x0000000000000005, 0x0000000000000005}; |
| 166 | + __m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 167 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 168 | + |
| 169 | + v2u64_op0 = (v2u64){0x017f03000000ff00, 0x010003f00000ff00}; |
| 170 | + v2u64_op1 = (v2u64){0x017f03000000ff00, 0x010003f00000ff00}; |
| 171 | + __m128i_result = (__m128i){0x0000000000000000, 0x0000000000000000}; |
| 172 | + __m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 173 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 174 | + |
| 175 | + v2u64_op0 = (v2u64){0x0000000000000001, 0x0000000000000001}; |
| 176 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x000000001fffffff}; |
| 177 | + __m128i_result = (__m128i){0x0000000000000001, 0x000000001ffffffe}; |
| 178 | + __m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 179 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 180 | + |
| 181 | + v2u64_op0 = (v2u64){0x0000ffac0a000000, 0x0000000000000000}; |
| 182 | + v2u64_op1 = (v2u64){0x0000000000000000, 0x0000000000000000}; |
| 183 | + __m128i_result = (__m128i){0x0000ffac0a000000, 0x0000000000000000}; |
| 184 | + __m128i_out = __lsx_vabsd_d((__m128)v2u64_op0, (__m128)v2u64_op1); |
| 185 | + check_lsx_out(&__m128i_result, &__m128i_out, sizeof(__m128i_out), __FILE__, __LINE__); |
| 186 | + |
| 187 | + return 0; |
| 188 | +} |
0 commit comments