llvm/test/CodeGen/CellSPU/useful-harnesses/i64operations.h
Scott Michel dd950096b9 CellSPU:
- Fix bugs 3194, 3195: i128 load/stores produce correct code (although, we
  need to ensure that i128 is 16-byte aligned in real life), and 128 zero-
  extends are supported.
- New td file: SPU128InstrInfo.td: this is where all new i128 support should
  be put in the future.
- Continue to hammer on i64 operations and test cases; ensure that the only
  remaining problem will be i64 mul.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61784 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06 03:36:14 +00:00

44 lines
1.1 KiB
C

#define TRUE_VAL (!0)
#define FALSE_VAL 0
#define ARR_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
typedef unsigned long long int uint64_t;
typedef long long int int64_t;
/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
struct harness_int64_pred {
const char *fmt_string;
int64_t *lhs;
int64_t *rhs;
int64_t *select_a;
int64_t *select_b;
int expected;
int64_t *select_expected;
};
struct harness_uint64_pred {
const char *fmt_string;
uint64_t *lhs;
uint64_t *rhs;
uint64_t *select_a;
uint64_t *select_b;
int expected;
uint64_t *select_expected;
};
struct int64_pred_s {
const char *name;
int (*predfunc) (int64_t, int64_t);
int64_t (*selfunc) (int64_t, int64_t, int64_t, int64_t);
struct harness_int64_pred *tests;
int n_tests;
};
struct uint64_pred_s {
const char *name;
int (*predfunc) (uint64_t, uint64_t);
uint64_t (*selfunc) (uint64_t, uint64_t, uint64_t, uint64_t);
struct harness_uint64_pred *tests;
int n_tests;
};