blob: 1afb00262a1b24451a5cc4132e8e04cea364d841 [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-mdejagnu-cpu=power10 -save-temps" } */
/* { dg-require-effective-target power10_hw } */
/* Check that the expected 128-bit instructions are generated if the processor
supports the 128-bit integer instructions. */
/* { dg-final { scan-assembler-times {\mvextsd2q\M} 6 } } */
/* { dg-final { scan-assembler-times {\mvslq\M} 2 } } */
/* { dg-final { scan-assembler-times {\mvsrq\M} 2 } } */
/* { dg-final { scan-assembler-times {\mvsraq\M} 2 } } */
/* { dg-final { scan-assembler-times {\mvrlq\M} 2 } } */
/* { dg-final { scan-assembler-times {\mvrlqnm\M} 2 } } */
/* { dg-final { scan-assembler-times {\mvrlqmi\M} 2 } } */
/* { dg-final { scan-assembler-times {\mvcmpequq\M} 24 } } */
/* { dg-final { scan-assembler-times {\mvcmpgtsq\M} 26 } } */
/* { dg-final { scan-assembler-times {\mvcmpgtuq\M} 26 } } */
/* { dg-final { scan-assembler-times {\mvmuloud\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvmulesd\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvmulosd\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvmulld\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvdivsq\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvdivuq\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvdivesq\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvdiveuq\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvmodsq\M} 1 } } */
/* { dg-final { scan-assembler-times {\mvmoduq\M} 1 } } */
#include <altivec.h>
#define DEBUG 0
#if DEBUG
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void print_i128(__int128_t val)
{
printf(" %lld %llu (0x%llx %llx)",
(signed long long)(val >> 64),
(unsigned long long)(val & 0xFFFFFFFFFFFFFFFF),
(unsigned long long)(val >> 64),
(unsigned long long)(val & 0xFFFFFFFFFFFFFFFF));
}
#endif
void abort (void);
__attribute__((noinline))
__int128_t shift_right (__int128_t a, __uint128_t b)
{
return a >> b;
}
__attribute__((noinline))
__int128_t shift_left (__int128_t a, __uint128_t b)
{
return a << b;
}
int main ()
{
int i, result_int;
__int128_t arg1, result;
__uint128_t uarg2;
_Decimal128 arg1_dfp128, result_dfp128, expected_result_dfp128;
struct conv_t {
__uint128_t u128;
_Decimal128 d128;
} conv, conv2;
vector signed long long int vec_arg1_di, vec_arg2_di;
vector signed long long int vec_result_di, vec_expected_result_di;
vector unsigned long long int vec_uarg1_di, vec_uarg2_di, vec_uarg3_di;
vector unsigned long long int vec_uresult_di;
vector unsigned long long int vec_uexpected_result_di;
__int128_t expected_result;
__uint128_t uexpected_result;
vector __int128 vec_arg1, vec_arg2, vec_result;
vector unsigned __int128 vec_uarg1, vec_uarg2, vec_uarg3, vec_uresult;
vector bool __int128 vec_result_bool;
/* sign extend double to 128-bit integer */
vec_arg1_di[0] = 1000;
vec_arg1_di[1] = -123456;
expected_result = 1000;
vec_result = vec_signextq (vec_arg1_di);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_signextq ((long long) %lld) = ", vec_arg1_di[0]);
print_i128(vec_result[0]);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1_di[0] = -123456;
vec_arg1_di[1] = 1000;
expected_result = -123456;
vec_result = vec_signextq (vec_arg1_di);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_signextq ((long long) %lld) = ", vec_arg1_di[0]);
print_i128(vec_result[0]);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
/* test shift 128-bit integers.
Note, shift amount is given by the lower 7-bits of the shift amount. */
vec_arg1[0] = 3;
vec_uarg2[0] = 2;
expected_result = vec_arg1[0]*4;
vec_result = vec_sl (vec_arg1, vec_uarg2);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_sl(int128, uint128): ");
print_i128(vec_arg1[0]);
printf(" << %lld", vec_uarg2[0] & 0xFF);
printf(" = ");
print_i128(vec_result[0]);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
arg1 = vec_result[0];
uarg2 = 4;
expected_result = arg1*16;
result = arg1 << uarg2;
if (result != expected_result) {
#if DEBUG
printf("ERROR: int128 << uint128): ");
print_i128(arg1);
printf(" << %lld", uarg2 & 0xFF);
printf(" = ");
print_i128(result);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 3;
vec_uarg2[0] = 2;
uexpected_result = vec_uarg1[0]*4;
vec_uresult = vec_sl (vec_uarg1, vec_uarg2);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_sl(uint128, uint128): ");
print_i128(vec_uarg1[0]);
printf(" << %lld", vec_uarg2[0] & 0xFF);
printf(" = ");
print_i128(vec_uresult[0]);
printf("\n does not match expected_result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 12;
vec_uarg2[0] = 2;
expected_result = vec_arg1[0]/4;
vec_result = vec_sr (vec_arg1, vec_uarg2);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_sr(int128, uint128): ");
print_i128(vec_arg1[0]);
printf(" >> %lld", vec_uarg2[0] & 0xFF);
printf(" = ");
print_i128(vec_result[0]);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 48;
vec_uarg2[0] = 2;
uexpected_result = vec_uarg1[0]/4;
vec_uresult = vec_sr (vec_uarg1, vec_uarg2);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_sr(uint128, uint128): ");
print_i128(vec_uarg1[0]);
printf(" >> %lld", vec_uarg2[0] & 0xFF);
printf(" = ");
print_i128(vec_uresult[0]);
printf("\n does not match expected_result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
arg1 = vec_uresult[0];
uarg2 = 4;
expected_result = arg1/16;
result = arg1 >> uarg2;
if (result != expected_result) {
#if DEBUG
printf("ERROR: int128 >> uint128: ");
print_i128(arg1);
printf(" >> %lld", uarg2 & 0xFF);
printf(" = ");
print_i128(result);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 0x1234567890ABCDEFULL;
vec_arg1[0] = (vec_arg1[0] << 64) | 0xAABBCCDDEEFF1122ULL;
vec_uarg2[0] = 32;
expected_result = 0x0000000012345678ULL;
expected_result = (expected_result << 64) | 0x90ABCDEFAABBCCDDULL;
vec_result = vec_sra (vec_arg1, vec_uarg2);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_sra(int128, uint128): ");
print_i128(vec_arg1[0]);
printf(" >> %lld = \n", vec_uarg2[0]);
print_i128(vec_result[0]);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 0xAABBCCDDEEFF1122ULL;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 0x1234567890ABCDEFULL;
vec_uarg2[0] = 48;
uexpected_result = 0xFFFFFFFFFFFFAABBLL;
uexpected_result = (uexpected_result << 64) | 0xCCDDEEFF11221234ULL;
vec_uresult = vec_sra (vec_uarg1, vec_uarg2);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_sra(uint128, uint128): ");
print_i128(vec_uarg1[0]);
printf(" >> %lld = \n", vec_uarg2[0] & 0xFF);
print_i128(vec_uresult[0]);
printf("\n does not match expected_result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 0x1234567890ABCDEFULL;
vec_arg1[0] = (vec_arg1[0] << 64) | 0xAABBCCDDEEFF1122ULL;
vec_uarg2[0] = 32;
expected_result = 0x90ABCDEFAABBCCDDULL;
expected_result = (expected_result << 64) | 0xEEFF112212345678ULL;
vec_result = vec_rl (vec_arg1, vec_uarg2);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_rl(int128, uint128): ");
print_i128(vec_arg1[0]);
printf(" >> %lld = \n", vec_uarg2[0]);
print_i128(vec_result[0]);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 0xAABBCCDDEEFF1122ULL;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 0x1234567890ABCDEFULL;
vec_uarg2[0] = 48;
uexpected_result = 0x11221234567890ABULL;
uexpected_result = (uexpected_result << 64) | 0xCDEFAABBCCDDEEFFULL;
vec_uresult = vec_rl (vec_uarg1, vec_uarg2);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_rl(uint128, uint128): ");
print_i128(vec_uarg1[0]);
printf(" >> %lld = \n", vec_uarg2[0]);
print_i128(vec_uresult[0]);
printf("\n does not match expected_result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
/* vec_rlnm(arg1, arg2, arg3)
result - rotate each element of arg1 left by shift in element of arg2.
Then AND with mask whose start/stop bits are specified in element of
arg3. */
vec_arg1[0] = 0x1234567890ABCDEFULL;
vec_arg1[0] = (vec_arg1[0] << 64) | 0xAABBCCDDEEFF1122ULL;
vec_uarg2[0] = 32;
vec_uarg3[0] = (32 << 8) | 95;
expected_result = 0xaabbccddULL;
expected_result = (expected_result << 64) | 0xeeff112200000000ULL;
vec_result = vec_rlnm (vec_arg1, vec_uarg2, vec_uarg3);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_rlnm(int128, uint128, uint128): ");
print_i128(vec_arg1[0]);
printf(" << %lld = \n", vec_uarg3[0] & 0xFF);
print_i128(vec_result[0]);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
/* vec_rlnm(arg1, arg2, arg3)
result - rotate each element of arg1 left by shift in element of arg2;
then AND with mask whose start/stop bits are specified in element of
arg3. */
vec_uarg1[0] = 0xAABBCCDDEEFF1122ULL;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 0x1234567890ABCDEFULL;
vec_uarg2[0] = 48;
vec_uarg3[0] = (8 << 8) | 119;
uexpected_result = 0x00221234567890ABULL;
uexpected_result = (uexpected_result << 64) | 0xCDEFAABBCCDDEE00ULL;
vec_uresult = vec_rlnm (vec_uarg1, vec_uarg2, vec_uarg3);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_rlnm(uint128, uint128, uint128): ");
print_i128(vec_uarg1[0]);
printf(" << %lld = \n", vec_uarg3[0] & 0xFF);
print_i128(vec_uresult[0]);
printf("\n does not match expected_result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
/* vec_rlmi(R, A, B)
Result value: Each element of R is obtained by rotating the corresponding
element of A left by the number of bits specified by the corresponding element
of B. */
vec_arg1[0] = 0x1234567890ABCDEFULL;
vec_arg1[0] = (vec_arg1[0] << 64) | 0xAABBCCDDEEFF1122ULL;
vec_arg2[0] = 0x000000000000DEADULL;
vec_arg2[0] = (vec_arg2[0] << 64) | 0x0000BEEF00000000ULL;
vec_uarg3[0] = 96 << 16 | 127 << 8 | 32;
expected_result = 0x000000000000DEADULL;
expected_result = (expected_result << 64) | 0x0000BEEF12345678ULL;
vec_result = vec_rlmi (vec_arg1, vec_arg2, vec_uarg3);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_rlmi(int128, int128, uint128): ");
print_i128(vec_arg1[0]);
printf(" << %lld = \n", vec_uarg2_di[1] & 0xFF);
print_i128(vec_result[0]);
printf("\n does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
/* vec_rlmi(R, A, B)
Result value: Each element of R is obtained by rotating the corresponding
element of A left by the number of bits specified by the corresponding element
of B. */
vec_uarg1[0] = 0xAABBCCDDEEFF1122ULL;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 0x1234567890ABCDEFULL;
vec_uarg2[0] = 0xDEAD000000000000ULL;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 0x000000000000BEEFULL;
vec_uarg3[0] = 16 << 16 | 111 << 8 | 48;
uexpected_result = 0xDEAD1234567890ABULL;
uexpected_result = (uexpected_result << 64) | 0xCDEFAABBCCDDBEEFULL;
vec_uresult = vec_rlmi (vec_uarg1, vec_uarg2, vec_uarg3);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_rlmi(uint128, unit128, uint128): ");
print_i128(vec_uarg1[0]);
printf(" << %lld = \n", vec_uarg3[1] & 0xFF);
print_i128(vec_uresult[0]);
printf("\n does not match expected_result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
/* 128-bit compare tests, result is all 1's if true */
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1[0] = 2468;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
uexpected_result = 0xFFFFFFFFFFFFFFFFULL;
uexpected_result = (uexpected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpgt (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != uexpected_result) {
#if DEBUG
printf("ERROR: unsigned vec_cmpgt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 12468;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpgt (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed vec_cmpgt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 12468;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = -1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0x0ULL;
vec_result_bool = vec_cmpeq (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR:not equal signed vec_cmpeq ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpeq (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed equal vec_cmpeq ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 12468;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
expected_result = 0x0ULL;
vec_result_bool = vec_cmpeq (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned not equal vec_cmpeq ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpeq (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: equal unsigned vec_cmpeq ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 12468;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpne (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned not equal vec_cmpne ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
expected_result = 0x0ULL;
vec_result_bool = vec_cmpne (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: equal unsigned vec_cmpne ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 12468;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = -1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpne (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR:not equal signed vec_cmpne ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
expected_result = 0x0ULL;
vec_result_bool = vec_cmpne (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed equal vec_cmpne ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 12468;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
expected_result = 0x0;
vec_result_bool = vec_cmplt (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 > arg2 vec_cmplt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 1234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 12468;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmplt (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 < arg2 vec_cmplt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
expected_result = 0x0ULL;
vec_result_bool = vec_cmplt (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 = arg2 vec_cmplt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 12468;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = -1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0x0;
vec_result_bool = vec_cmplt (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 > arg2 vec_cmplt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -1234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 12468;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmplt (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 < arg2 vec_cmplt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
expected_result = 0x0ULL;
vec_result_bool = vec_cmplt (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_cmplt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 12468;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
expected_result = 0x0;
vec_result_bool = vec_cmple (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 > arg2 vec_cmple ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 1234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 12468;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmple (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 < arg2 vec_cmple ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmple (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 = arg2 vec_cmple ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 12468;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = -1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0x0;
vec_result_bool = vec_cmple (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 > arg2 vec_cmple ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -1234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 12468;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmple (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 < arg2 vec_cmple ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmple (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_cmple ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 12468;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpge (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 > arg2 vec_cmpge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 1234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 12468;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
expected_result = 0x0;
vec_result_bool = vec_cmpge (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 < arg2 vec_cmpge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpge (vec_uarg1, vec_uarg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: unsigned arg1 = arg2 vec_cmpge ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = 12468;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = -1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpge (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 > arg2 vec_cmpge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -1234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 12468;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
expected_result = 0x0;
vec_result_bool = vec_cmpge (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 < arg2 vec_cmpge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
expected_result = 0xFFFFFFFFFFFFFFFFULL;
expected_result = (expected_result << 64) | 0xFFFFFFFFFFFFFFFFULL;
vec_result_bool = vec_cmpge (vec_arg1, vec_arg2);
if (vec_result_bool[0] != expected_result) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_cmpge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.");
print_i128(vec_result_bool[0]);
printf("\n Result does not match expected_result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
#if 1
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_all_eq (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_all_eq ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_all_eq (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_all_eq ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_all_eq (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_all_eq ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_all_eq (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_all_eq ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_all_ne (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_all_ne ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_all_ne (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_all_ne ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_all_ne (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_all_ne ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_all_ne (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_all_ne ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_all_lt (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_all_lt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_all_lt (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_all_lt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_all_lt (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_all_lt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_all_lt (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_all_lt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_all_le (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_all_le ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_all_le (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_all_le ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_all_le (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_all_le ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_all_le (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_all_le ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_all_gt (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_all_gt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_all_gt (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_all_gt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_all_gt (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_all_gt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_all_gt (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_all_gt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_all_ge (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_all_ge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_all_ge (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_all_ge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_all_ge (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_all_ge ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_all_ge (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_all_ge ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_any_eq (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_any_eq ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_any_eq (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_any_eq ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_any_eq (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_any_eq ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_any_eq (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_any_eq ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_any_ne (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_any_ne ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_any_ne (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_any_ne ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_any_ne (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_any_ne ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_any_ne (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_any_ne ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_any_lt (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_any_lt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_any_lt (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_any_lt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_any_lt (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_any_lt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_any_lt (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_any_lt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_any_gt (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_any_gt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_any_gt (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_any_gt ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_any_gt (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_any_gt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_any_gt (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_any_gt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_any_le (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_any_le ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_any_le (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_any_le ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_any_le (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_any_le ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_any_le (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_any_le ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
vec_arg1 = vec_arg2;
result_int = vec_any_ge (vec_arg1, vec_arg2);
if (!result_int) {
#if DEBUG
printf("ERROR: signed arg1 = arg2 vec_any_ge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_arg1[0] = -234;
vec_arg1[0] = (vec_arg1[0] << 64) | 4567;
vec_arg2[0] = 1234;
vec_arg2[0] = (vec_arg2[0] << 64) | 4567;
result_int = vec_any_ge (vec_arg1, vec_arg2);
if (result_int) {
#if DEBUG
printf("ERROR: signed arg1 != arg2 vec_any_ge ( ");
print_i128(vec_arg1[0]);
printf(", ");
print_i128(vec_arg2[0]);
printf(") failed.\n\n");
printf("\n\n");
#else
abort();
#endif
}
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
vec_uarg1 = vec_uarg2;
result_int = vec_any_ge (vec_uarg1, vec_uarg2);
if (!result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 = uarg2 vec_any_ge ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 234;
vec_uarg1[0] = (vec_uarg1[0] << 64) | 4567;
vec_uarg2[0] = 1234;
vec_uarg2[0] = (vec_uarg2[0] << 64) | 4567;
result_int = vec_any_ge (vec_uarg1, vec_uarg2);
if (result_int) {
#if DEBUG
printf("ERROR: unsigned uarg1 != uarg2 vec_any_gt ( ");
print_i128(vec_uarg1[0]);
printf(", ");
print_i128(vec_uarg2[0]);
printf(") failed.\n\n");
#else
abort();
#endif
}
#endif
/* Vector multiply Even and Odd tests */
vec_arg1_di[0] = 200;
vec_arg1_di[1] = 400;
vec_arg2_di[0] = 1234;
vec_arg2_di[1] = 4567;
expected_result = vec_arg1_di[0] * vec_arg2_di[0];
vec_result = vec_mule (vec_arg1_di, vec_arg2_di);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_mule (signed, signed) failed.\n");
printf(" vec_arg1_di[0] = %lld\n", vec_arg1_di[0]);
printf(" vec_arg2_di[0] = %lld\n", vec_arg2_di[0]);
printf("Result = ");
print_i128(vec_result[0]);
printf("\nExpected Result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_arg1_di[0] = -200;
vec_arg1_di[1] = -400;
vec_arg2_di[0] = 1234;
vec_arg2_di[1] = 4567;
expected_result = vec_arg1_di[1] * vec_arg2_di[1];
vec_result = vec_mulo (vec_arg1_di, vec_arg2_di);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_mulo (signed, signed) failed.\n");
printf(" vec_arg1_di[1] = %lld\n", vec_arg1_di[1]);
printf(" vec_arg2_di[1] = %lld\n", vec_arg2_di[1]);
printf("Result = ");
print_i128(vec_result[0]);
printf("\nExpected Result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1_di[0] = 200;
vec_uarg1_di[1] = 400;
vec_uarg2_di[0] = 1234;
vec_uarg2_di[1] = 4567;
uexpected_result = vec_uarg1_di[0] * vec_uarg2_di[0];
vec_uresult = vec_mule (vec_uarg1_di, vec_uarg2_di);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_mule (unsigned, unsigned) failed.\n");
printf(" vec_uarg1_di[1] = %lld\n", vec_uarg1_di[1]);
printf(" vec_uarg2_di[1] = %lld\n", vec_uarg2_di[1]);
printf("Result = ");
print_i128(vec_uresult[0]);
printf("\nExpected Result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1_di[0] = 200;
vec_uarg1_di[1] = 400;
vec_uarg2_di[0] = 1234;
vec_uarg2_di[1] = 4567;
uexpected_result = vec_uarg1_di[1] * vec_uarg2_di[1];
vec_uresult = vec_mulo (vec_uarg1_di, vec_uarg2_di);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_mulo (unsigned, unsigned) failed.\n");
printf(" vec_uarg1_di[0] = %lld\n", vec_uarg1_di[0]);
printf(" vec_uarg2_di[0] = %lld\n", vec_uarg2_di[0]);
printf("Result = ");
print_i128(vec_uresult[0]);
printf("\nExpected Result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
/* Vector Multiply Longword */
vec_arg1_di[0] = 100;
vec_arg1_di[1] = -123456;
vec_arg2_di[0] = 123;
vec_arg2_di[1] = 1000;
vec_expected_result_di[0] = 12300;
vec_expected_result_di[1] = -123456000;
vec_result_di = vec_arg1_di * vec_arg2_di;
for (i = 0; i<2; i++) {
if (vec_result_di[i] != vec_expected_result_di[i]) {
#if DEBUG
printf("ERROR: vector multipy [%d] ((long long) %lld) = ", i,
vec_result_di[i]);
printf("\n does not match expected_result [%d] = ((long long) %lld)", i,
vec_expected_result_di[i]);
printf("\n\n");
#else
abort();
#endif
}
}
/* Vector Divide Quadword */
vec_arg1[0] = -12345678;
vec_arg2[0] = 2;
expected_result = -6172839;
vec_result = vec_div (vec_arg1, vec_arg2);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_div (signed, signed) failed.\n");
printf("vec_arg1[0] = ");
print_i128(vec_arg1[0]);
printf("\nvec_arg2[0] = ");
print_i128(vec_arg2[0]);
printf("\nResult = ");
print_i128(vec_result[0]);
printf("\nExpected result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 24680;
vec_uarg2[0] = 4;
uexpected_result = 6170;
vec_uresult = vec_div (vec_uarg1, vec_uarg2);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_div (unsigned, unsigned) failed.\n");
printf("vec_uarg1[0] = ");
print_i128(vec_uarg1[0]);
printf("\nvec_uarg2[0] = ");
print_i128(vec_uarg2[0]);
printf("\nResult = ");
print_i128(vec_uresult[0]);
printf("\nExpected result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
/* Vector Divide Extended Quadword */
vec_arg1[0] = -20; // has 128-bit of zero concatenated onto it
vec_arg2[0] = 0x2000000000000000;
vec_arg2[0] = vec_arg2[0] << 64;
expected_result = -160;
vec_result = vec_dive (vec_arg1, vec_arg2);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_dive (signed, signed) failed.\n");
printf("vec_arg1[0] = ");
print_i128(vec_arg1[0]);
printf("\nvec_arg2[0] = ");
print_i128(vec_arg2[0]);
printf("\nResult = ");
print_i128(vec_result[0]);
printf("\nExpected result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 20; // has 128-bit of zero concatenated onto it
vec_uarg2[0] = 0x4000000000000000;
vec_uarg2[0] = vec_uarg2[0] << 64;
uexpected_result = 80;
vec_uresult = vec_dive (vec_uarg1, vec_uarg2);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_dive (unsigned, unsigned) failed.\n");
printf("vec_uarg1[0] = ");
print_i128(vec_uarg1[0]);
printf("\nvec_uarg2[0] = ");
print_i128(vec_uarg2[0]);
printf("\nResult = ");
print_i128(vec_uresult[0]);
printf("\nExpected result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
/* Vector modulo quad word */
vec_arg1[0] = -12345675;
vec_arg2[0] = 2;
expected_result = -1;
vec_result = vec_mod (vec_arg1, vec_arg2);
if (vec_result[0] != expected_result) {
#if DEBUG
printf("ERROR: vec_mod (signed, signed) failed.\n");
printf("vec_arg1[0] = ");
print_i128(vec_arg1[0]);
printf("\nvec_arg2[0] = ");
print_i128(vec_arg2[0]);
printf("\nResult = ");
print_i128(vec_result[0]);
printf("\nExpected result = ");
print_i128(expected_result);
printf("\n\n");
#else
abort();
#endif
}
vec_uarg1[0] = 24685;
vec_uarg2[0] = 4;
uexpected_result = 1;
vec_uresult = vec_mod (vec_uarg1, vec_uarg2);
if (vec_uresult[0] != uexpected_result) {
#if DEBUG
printf("ERROR: vec_mod (unsigned, unsigned) failed.\n");
printf("vec_uarg1[0] = ");
print_i128(vec_uarg1[0]);
printf("\nvec_uarg2[0] = ");
print_i128(vec_uarg2[0]);
printf("\nResult = ");
print_i128(vec_uresult[0]);
printf("\nExpected result = ");
print_i128(uexpected_result);
printf("\n\n");
#else
abort();
#endif
}
/* DFP to __int128 and __int128 to DFP conversions */
/* Print the DFP value as an unsigned int so we can see the bit patterns. */
conv.u128 = 0x2208000000000000ULL;
conv.u128 = (conv.u128 << 64) | 0x4ULL; //DFP bit pattern for integer 4
expected_result_dfp128 = conv.d128;
arg1 = 4;
conv.d128 = (_Decimal128) arg1;
result_dfp128 = (_Decimal128) arg1;
if (((conv.u128 >>64) != 0x2208000000000000ULL) &&
((conv.u128 & 0xFFFFFFFFFFFFFFFF) != 0x4ULL)) {
#if DEBUG
printf("ERROR: convert int128 value ");
print_i128 (arg1);
conv.d128 = result_dfp128;
printf("\nto DFP value 0x%llx %llx (printed as hex bit string) ",
(unsigned long long)((conv.u128) >>64),
(unsigned long long)((conv.u128) & 0xFFFFFFFFFFFFFFFF));
conv.d128 = expected_result_dfp128;
printf("\ndoes not match expected_result = 0x%llx %llx\n\n",
(unsigned long long) (conv.u128>>64),
(unsigned long long) (conv.u128 & 0xFFFFFFFFFFFFFFFF));
#else
abort();
#endif
}
expected_result = 4;
conv.u128 = 0x2208000000000000ULL;
conv.u128 = (conv.u128 << 64) | 0x4ULL; // 4 as DFP
arg1_dfp128 = conv.d128;
result = (__int128_t) arg1_dfp128;
if (result != expected_result) {
#if DEBUG
printf("ERROR: convert DFP value ");
printf("0x%llx %llx (printed as hex bit string) ",
(unsigned long long)(conv.u128>>64),
(unsigned long long)(conv.u128 & 0xFFFFFFFFFFFFFFFF));
printf("to __int128 value = ");
print_i128 (result);
printf("\ndoes not match expected_result = ");
print_i128 (expected_result);
printf("\n");
#else
abort();
#endif
}
return 0;
}