Lines Matching defs:imm0

555                       ImmediateValue &imm0, ImmediateValue &imm1)
557 struct Storage *const a = &imm0.reg, *const b = &imm1.reg;
789 ImmediateValue &imm0,
793 struct Storage *const a = &imm0.reg, *const b = &imm1.reg, *const c = &imm2.reg;
1052 ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
1068 uint64_t val = imm0.reg.data.u64;
1082 tryCollapseChainedMULs(i, s, imm0);
1086 if (imm0.isInteger(1) && i->dType == TYPE_S32) {
1093 } else if (imm0.isInteger(0) || imm0.isInteger(1)) {
1101 } else if (!imm0.isNegative() && imm0.isPow2()) {
1103 imm0.applyLog2();
1106 imm0.reg.data.u32 = 32 - imm0.reg.data.u32;
1109 i->setSrc(1, new_ImmediateValue(prog, imm0.reg.data.u32));
1113 if (imm0.isInteger(0)) {
1121 if (!i->postFactor && (imm0.isInteger(1) || imm0.isInteger(-1))) {
1122 if (imm0.isNegative())
1135 if (!i->postFactor && (imm0.isInteger(2) || imm0.isInteger(-2))) {
1136 if (imm0.isNegative())
1145 int64_t b = typeSizeof(i->dType) == 8 ? imm0.reg.data.s64 : imm0.reg.data.s32;
1154 prog, imm0.reg.data.f32 * exp2f(i->postFactor)));
1160 if (imm0.isInteger(0)) {
1171 (imm0.isInteger(1) || imm0.isInteger(-1))) {
1172 if (imm0.isNegative())
1186 int64_t b = typeSizeof(i->dType) == 8 ? imm0.reg.data.s64 : imm0.reg.data.s32;
1194 if (imm0.isInteger(0) && s == 0 && typeSizeof(i->dType) == 8 &&
1201 if (imm0.isInteger(0)) {
1219 if (imm0.reg.data.u32 == 0) {
1222 if (imm0.reg.data.u32 == 1) {
1226 if (i->dType == TYPE_U32 && imm0.isPow2()) {
1228 i->setSrc(1, bld.mkImm(util_logbase2(imm0.reg.data.u32)));
1233 const uint32_t d = imm0.reg.data.u32;
1262 if (imm0.reg.data.s32 == -1) {
1268 const int32_t d = imm0.reg.data.s32;
1298 if (s == 1 && imm0.isPow2()) {
1302 i->setSrc(1, bld.loadImm(NULL, imm0.reg.data.u32 - 1));
1317 bld.loadImm(NULL, imm0.reg.data.u32 - 1));
1354 if (imm0.reg.data.u32 != 0 || !si)
1401 if (imm0.reg.data.u32 == 0) {
1406 } else if (imm0.reg.data.u32 == ~0U) {
1419 if (imm0.reg.data.f32 != 1.0)
1440 util_is_power_of_two_or_zero(imm0.reg.data.u32 + 1)) {
1442 uint32_t ext = (util_last_bit(imm0.reg.data.u32) << 8) | imm1.reg.data.u32;
1449 util_is_power_of_two_or_zero(~imm0.reg.data.u32 + 1) &&
1450 util_last_bit(~imm0.reg.data.u32) <= imm1.reg.data.u32) {
1466 if (imm0.reg.data.u32 == 0) {
1481 i->setSrc(1, bld.loadImm(NULL, imm0.reg.data.u32 + imm1.reg.data.u32));
1485 if (si->src(1).getImmediate(imm1) && imm0.reg.data.u32 == imm1.reg.data.u32) {
1489 i->setSrc(1, bld.loadImm(NULL, ~((1 << imm0.reg.data.u32) - 1)));
1511 i->setSrc(1, bld.loadImm(NULL, imm1.reg.data.u32 << imm0.reg.data.u32));
1533 i->setSrc(adds, bld.loadImm(NULL, imm1.reg.data.u32 << imm0.reg.data.u32));
1537 bld.mkImm(imm0.reg.data.u32)));
1557 unary(i, imm0);
1562 case TYPE_S32: res = util_last_bit_signed(imm0.reg.data.s32) - 1; break;
1563 case TYPE_U32: res = util_last_bit(imm0.reg.data.u32) - 1; break;
1577 uint32_t res = util_bitreverse(imm0.reg.data.u32);
1586 uint32_t res = util_bitcount(imm0.reg.data.u32);
1610 CLAMP(imm0.reg.data.f64, fmin, fmax) : \
1611 imm0.reg.data.f64); \
1615 CLAMP(imm0.reg.data.f32, fmin, fmax) : \
1616 imm0.reg.data.f32); \
1620 CLAMP(imm0.reg.data.s32, imin, imax) : \
1621 imm0.reg.data.s32; \
1625 CLAMP(imm0.reg.data.u32, umin, umax) : \
1626 imm0.reg.data.u32; \
1630 CLAMP(imm0.reg.data.s16, imin, imax) : \
1631 imm0.reg.data.s16; \
1635 CLAMP(imm0.reg.data.u16, umin, umax) : \
1636 imm0.reg.data.u16; \
1652 SATURATE(imm0.reg.data.f64) :
1653 imm0.reg.data.f64;
1657 SATURATE(imm0.reg.data.f32) :
1658 imm0.reg.data.f32;
1660 case TYPE_U16: res.data.f32 = (float) imm0.reg.data.u16; break;
1661 case TYPE_U32: res.data.f32 = (float) imm0.reg.data.u32; break;
1662 case TYPE_S16: res.data.f32 = (float) imm0.reg.data.s16; break;
1663 case TYPE_S32: res.data.f32 = (float) imm0.reg.data.s32; break;
1673 SATURATE(imm0.reg.data.f64) :
1674 imm0.reg.data.f64;
1678 SATURATE(imm0.reg.data.f32) :
1679 imm0.reg.data.f32;
1681 case TYPE_U16: res.data.f64 = (double) imm0.reg.data.u16; break;
1682 case TYPE_U32: res.data.f64 = (double) imm0.reg.data.u32; break;
1683 case TYPE_S16: res.data.f64 = (double) imm0.reg.data.s16; break;
1684 case TYPE_S32: res.data.f64 = (double) imm0.reg.data.s32; break;