Lines Matching defs:imm

319          ImmediateValue imm;
327 !insn->src(1).getImmediate(imm) ||
328 !targ->insnCanLoadOffset(i, s, imm.reg.data.s32))
332 i->src(s).get()->reg.data.offset += imm.reg.data.u32;
335 !insn->src(1).getImmediate(imm) ||
336 !targ->insnCanLoadOffset(i, s, -imm.reg.data.s32))
340 i->src(s).get()->reg.data.offset -= imm.reg.data.u32;
342 if (!insn->src(0).getImmediate(imm) ||
343 !targ->insnCanLoadOffset(i, s, imm.reg.data.s32))
347 i->src(s).get()->reg.data.offset += imm.reg.data.u32;
349 if (!insn->src(2).getImmediate(imm) ||
350 !targ->insnCanLoadOffset(i, s, imm.reg.data.s32))
355 i->src(s).get()->reg.data.offset += imm.reg.data.u32;
463 ImmediateValue imm;
464 if (!insn->src(s).getImmediate(imm)) {
466 if (!insn->src(s).getImmediate(imm))
469 if (imm.reg.data.f32 != 1.0f)
481 Modifier::applyTo(ImmediateValue& imm) const
483 if (!bits) // avoid failure if imm.reg.type is unhandled (e.g. b128)
485 switch (imm.reg.type) {
488 imm.reg.data.f32 = fabsf(imm.reg.data.f32);
490 imm.reg.data.f32 = -imm.reg.data.f32;
492 if (imm.reg.data.f32 < 0.0f)
493 imm.reg.data.f32 = 0.0f;
495 if (imm.reg.data.f32 > 1.0f)
496 imm.reg.data.f32 = 1.0f;
508 imm.reg.data.s32 = (imm.reg.data.s32 >= 0) ?
509 imm.reg.data.s32 : -imm.reg.data.s32;
511 imm.reg.data.s32 = -imm.reg.data.s32;
513 imm.reg.data.s32 = ~imm.reg.data.s32;
518 imm.reg.data.f64 = fabs(imm.reg.data.f64);
520 imm.reg.data.f64 = -imm.reg.data.f64;
522 if (imm.reg.data.f64 < 0.0)
523 imm.reg.data.f64 = 0.0;
525 if (imm.reg.data.f64 > 1.0)
526 imm.reg.data.f64 = 1.0;
533 imm.reg.data.u64 = 0;
875 ConstantFolding::unary(Instruction *i, const ImmediateValue &imm)
882 case OP_NEG: res.data.f32 = -imm.reg.data.f32; break;
883 case OP_ABS: res.data.f32 = fabsf(imm.reg.data.f32); break;
884 case OP_SAT: res.data.f32 = SATURATE(imm.reg.data.f32); break;
885 case OP_RCP: res.data.f32 = 1.0f / imm.reg.data.f32; break;
886 case OP_RSQ: res.data.f32 = 1.0f / sqrtf(imm.reg.data.f32); break;
887 case OP_LG2: res.data.f32 = log2f(imm.reg.data.f32); break;
888 case OP_EX2: res.data.f32 = exp2f(imm.reg.data.f32); break;
889 case OP_SIN: res.data.f32 = sinf(imm.reg.data.f32); break;
890 case OP_COS: res.data.f32 = cosf(imm.reg.data.f32); break;
891 case OP_SQRT: res.data.f32 = sqrtf(imm.reg.data.f32); break;
895 res.data.f32 = imm.reg.data.f32;
937 // d = mul c, imm -> d = mul_x_imm a, b
948 // b = mul a, imm
1924 ImmediateValue imm;
1925 if (!src->getInsn()->src(2).getImmediate(imm))
1927 if (!imm.isInteger(0))
2179 ImmediateValue imm;
2184 if (insn->op == OP_EXTBF && insn->src(1).getImmediate(imm)) {
2185 width = (imm.reg.data.u32 >> 8) & 0xff;
2186 offset = imm.reg.data.u32 & 0xff;
2197 if (insn->src(0).getImmediate(imm))
2199 else if (insn->src(1).getImmediate(imm))
2204 if (imm.reg.data.u32 == 0xff)
2206 else if (imm.reg.data.u32 == 0xffff)
2216 shift->src(1).getImmediate(imm) &&
2217 ((width == 8 && (imm.reg.data.u32 & 0x7) == 0) ||
2218 (width == 16 && (imm.reg.data.u32 & 0xf) == 0))) {
2220 offset = imm.reg.data.u32;
2227 insn->src(1).getImmediate(imm)) {
2229 if (imm.reg.data.u32 == 24) {
2232 } else if (imm.reg.data.u32 == 16) {
2247 shift->src(1).getImmediate(imm) &&
2248 ((width == 8 && (imm.reg.data.u32 & 0x7) == 0) ||
2249 (width == 16 && (imm.reg.data.u32 & 0xf) == 0)) &&
2250 imm.reg.data.u32 <= offset) {
2252 offset -= imm.reg.data.u32;
2268 // SUCLAMP dst, (ADD b imm), k, 0 -> SUCLAMP dst, b, k, imm (if imm fits s6)
2272 ImmediateValue imm;
2290 if (add->src(s).getImmediate(imm))
2296 val += imm.reg.data.s32;
2313 ImmediateValue imm;
2319 if (src->src(0).getImmediate(imm))
2321 else if (src->src(1).getImmediate(imm))
2326 if (!imm.isInteger(1))
2349 ImmediateValue imm;
2350 if (!i->src(1).getImmediate(imm))
2354 if (imm.isInteger(0x1000))
2357 if (imm.isInteger(0x0a10))
2360 if (imm.isInteger(0x061a))
2459 ImmediateValue imm;
2482 if (!shl->src(1).getImmediate(imm))
2492 add->setSrc(1, new_ImmediateValue(shl->bb->getProgram(), imm.reg.data.u32));
3644 Instruction *imm = i->getSrc(1)->getInsn();
3645 i->setSrc(1, imm->getSrc(0));
3646 if (post_ra_dead(imm))
3647 delete_Instruction(prog, imm);