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