|
| IR_FOLD_CONST_U (op1_insn->val.u8+op2_insn->val.u8) |
|
| IR_FOLD_CONST_U (op1_insn->val.u16+op2_insn->val.u16) |
|
| IR_FOLD_CONST_U (op1_insn->val.u32+op2_insn->val.u32) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64+op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i8+op2_insn->val.i8) |
|
| IR_FOLD_CONST_I (op1_insn->val.i16+op2_insn->val.i16) |
|
| IR_FOLD_CONST_I ((int32_t)(op1_insn->val.u32+op2_insn->val.u32)) |
|
| IR_FOLD_CONST_I (op1_insn->val.u64+op2_insn->val.u64) |
|
| IR_FOLD_CONST_D (op1_insn->val.d+op2_insn->val.d) |
|
| IR_FOLD_CONST_F (op1_insn->val.f+op2_insn->val.f) |
|
| IR_FOLD_CONST_U (op1_insn->val.u8 - op2_insn->val.u8) |
|
| IR_FOLD_CONST_U (op1_insn->val.u16 - op2_insn->val.u16) |
|
| IR_FOLD_CONST_U (op1_insn->val.u32 - op2_insn->val.u32) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64 - op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i8 - op2_insn->val.i8) |
|
| IR_FOLD_CONST_I (op1_insn->val.i16 - op2_insn->val.i16) |
|
| IR_FOLD_CONST_I ((int32_t)(op1_insn->val.u32 - op2_insn->val.u32)) |
|
| IR_FOLD_CONST_I (op1_insn->val.u64 - op2_insn->val.u64) |
|
| IR_FOLD_CONST_D (op1_insn->val.d - op2_insn->val.d) |
|
| IR_FOLD_CONST_F (op1_insn->val.f - op2_insn->val.f) |
|
| IR_FOLD_CONST_U (op1_insn->val.u8 *op2_insn->val.u8) |
|
| IR_FOLD_CONST_U (op1_insn->val.u16 *op2_insn->val.u16) |
|
| IR_FOLD_CONST_U (op1_insn->val.u32 *op2_insn->val.u32) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64 *op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i8 *op2_insn->val.i8) |
|
| IR_FOLD_CONST_I (op1_insn->val.i16 *op2_insn->val.i16) |
|
| IR_FOLD_CONST_I ((int32_t)(op1_insn->val.u32 *op2_insn->val.u32)) |
|
| IR_FOLD_CONST_I (op1_insn->val.u64 *op2_insn->val.u64) |
|
| IR_FOLD_CONST_D (op1_insn->val.d *op2_insn->val.d) |
|
| IR_FOLD_CONST_F (op1_insn->val.f *op2_insn->val.f) |
|
| if (op2_insn->val.u64==0) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64/op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i64/op2_insn->val.i64) |
|
| IR_FOLD_CONST_D (op1_insn->val.d/op2_insn->val.d) |
|
| IR_FOLD_CONST_F (op1_insn->val.f/op2_insn->val.f) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64 % op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i64 % op2_insn->val.i64) |
|
| IR_FOLD_CONST_I (-op1_insn->val.u64) |
|
| IR_FOLD_CONST_D (-op1_insn->val.d) |
|
| IR_FOLD_CONST_F (-op1_insn->val.f) |
|
| if (op1_insn->val.i64 >=0) |
|
| IR_FOLD_CONST_D (fabs(op1_insn->val.d)) |
|
| IR_FOLD_CONST_F (fabsf(op1_insn->val.f)) |
|
| IR_ASSERT (type==op1_insn->type) |
|
| if (op1_insn->val.u64 > max - op2_insn->val.u64) |
|
| if ((op2_insn->val.i64 > 0 &&op1_insn->val.i64 > max - op2_insn->val.i64)||(op2_insn->val.i64< 0 &&op1_insn->val.i64< min - op2_insn->val.i64)) |
|
| IR_FOLD_CONST_I (op1_insn->val.i64+op2_insn->val.i64) |
|
| if (op2_insn->val.u64 > op1_insn->val.u64) |
|
| if ((op2_insn->val.i64 > 0 &&op1_insn->val.i64< min+op2_insn->val.i64)||(op2_insn->val.i64< 0 &&op1_insn->val.i64 > max+op2_insn->val.i64)) |
|
| IR_FOLD_CONST_I (op1_insn->val.i64 - op2_insn->val.i64) |
|
| IR_ASSERT (IR_OPT_TYPE(opt)==op1_insn->type) |
|
| if (op1_insn->val.u64 !=0 &&res/op1_insn->val.u64 !=op2_insn->val.u64 &&res<=max) |
|
| IR_FOLD_CONST_U (res) |
|
| if (op1_insn->val.i64 !=0 &&res/op1_insn->val.i64 !=op2_insn->val.i64 &&res >=min &&res<=max) |
|
| IR_FOLD_BOOL (!op1_insn->val.u64) |
|
| IR_FOLD_CONST_U (~op1_insn->val.u8) |
|
| IR_FOLD_CONST_I (~op1_insn->val.i8) |
|
| IR_FOLD_BOOL (op1_insn->val.b||op2_insn->val.b) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64|op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i64|op2_insn->val.i64) |
|
| IR_FOLD_BOOL (op1_insn->val.b &&op2_insn->val.b) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64 &op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i64 &op2_insn->val.i64) |
|
| IR_FOLD_BOOL (op1_insn->val.b !=op2_insn->val.b) |
|
| IR_FOLD_CONST_U (op1_insn->val.u8 ^ op2_insn->val.u8) |
|
| IR_FOLD_CONST_I (op1_insn->val.i8 ^ op2_insn->val.i8) |
|
| IR_FOLD_CONST_U (op1_insn->val.u16 ^ op2_insn->val.u16) |
|
| IR_FOLD_CONST_I (op1_insn->val.i16 ^ op2_insn->val.i16) |
|
| IR_FOLD_CONST_U (op1_insn->val.u32 ^ op2_insn->val.u32) |
|
| IR_FOLD_CONST_I (op1_insn->val.i32 ^ op2_insn->val.i32) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64 ^ op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i64 ^ op2_insn->val.i64) |
|
| IR_FOLD_CONST_U (op1_insn->val.u8<< op2_insn->val.u8) |
|
| IR_FOLD_CONST_I (op1_insn->val.i8<< op2_insn->val.i8) |
|
| IR_FOLD_CONST_U (op1_insn->val.u16<< op2_insn->val.u16) |
|
| IR_FOLD_CONST_I (op1_insn->val.i16<< op2_insn->val.i16) |
|
| IR_FOLD_CONST_U (op1_insn->val.u32<< op2_insn->val.u32) |
|
| IR_FOLD_CONST_I (op1_insn->val.i32<< op2_insn->val.i32) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64<< op2_insn->val.u64) |
|
| IR_FOLD_CONST_U (op1_insn->val.u8 > > op2_insn->val.u8) |
|
| IR_FOLD_CONST_I ((int8_t)(op1_insn->val.u8 > > op2_insn->val.u8)) |
|
| IR_FOLD_CONST_U (op1_insn->val.u16 > > op2_insn->val.u16) |
|
| IR_FOLD_CONST_U ((int16_t)(op1_insn->val.u16 > > op2_insn->val.u16)) |
|
| IR_FOLD_CONST_U (op1_insn->val.u32 > > op2_insn->val.u32) |
|
| IR_FOLD_CONST_U (op1_insn->val.u64 > > op2_insn->val.u64) |
|
| IR_FOLD_CONST_I (op1_insn->val.i8 > > op2_insn->val.i8) |
|
| IR_FOLD_CONST_U ((uint16_t)(op1_insn->val.i16 > > op2_insn->val.i16)) |
|
| IR_FOLD_CONST_I (op1_insn->val.i16 > > op2_insn->val.i16) |
|
| IR_FOLD_CONST_I (op1_insn->val.i32 > > op2_insn->val.i32) |
|
| IR_FOLD_CONST_I (op1_insn->val.i64 > > op2_insn->val.i64) |
|
| IR_FOLD_CONST_U (ir_rol8(op1_insn->val.u8, op2_insn->val.u8)) |
|
| IR_FOLD_CONST_I ((int8_t) ir_rol8(op1_insn->val.u8, op2_insn->val.u8)) |
|
| IR_FOLD_CONST_U (ir_rol16(op1_insn->val.u16, op2_insn->val.u16)) |
|
| IR_FOLD_CONST_I ((int16_t) ir_rol16(op1_insn->val.u16, op2_insn->val.u16)) |
|
| IR_FOLD_CONST_U (ir_rol32(op1_insn->val.u32, op2_insn->val.u32)) |
|
| IR_FOLD_CONST_I ((int32_t) ir_rol32(op1_insn->val.u32, op2_insn->val.u32)) |
|
| IR_FOLD_CONST_U (ir_rol64(op1_insn->val.u64, op2_insn->val.u64)) |
|
| IR_FOLD_CONST_U (ir_ror8(op1_insn->val.u8, op2_insn->val.u8)) |
|
| IR_FOLD_CONST_I ((int8_t) ir_ror8(op1_insn->val.u8, op2_insn->val.u8)) |
|
| IR_FOLD_CONST_U (ir_ror16(op1_insn->val.u16, op2_insn->val.u16)) |
|
| IR_FOLD_CONST_I ((int16_t) ir_ror16(op1_insn->val.u16, op2_insn->val.u16)) |
|
| IR_FOLD_CONST_U (ir_ror32(op1_insn->val.u32, op2_insn->val.u32)) |
|
| IR_FOLD_CONST_I ((int32_t) ir_ror32(op1_insn->val.u32, op2_insn->val.u32)) |
|
| IR_FOLD_CONST_U (ir_ror64(op1_insn->val.u64, op2_insn->val.u64)) |
|
| IR_ASSERT (ir_type_size[IR_OPT_TYPE(opt)] > ir_type_size[op1_insn->type]) |
|
| IR_FOLD_CONST_I ((int64_t) op1_insn->val.i8) |
|
| IR_FOLD_CONST_U ((uint64_t) op1_insn->val.u8) |
|
| IR_ASSERT (ir_type_size[IR_OPT_TYPE(opt)]< ir_type_size[op1_insn->type]) |
|
| switch (IR_OPT_TYPE(opt)) |
|