[CPU] Fixed issue with const path in AVX512 vector left rotate.

- Added logging in case of similar issues
This commit is contained in:
Gliniak
2025-10-28 17:43:21 +01:00
parent dc151eb439
commit 906c0b8fa6
2 changed files with 10 additions and 1 deletions

View File

@@ -175,6 +175,10 @@ struct ValueOp : Op<ValueOp<T, KEY_TYPE, REG_TYPE, CONST_TYPE>, KEY_TYPE> {
virtual bool ConstantFitsIn32Reg() const { return true; }
const REG_TYPE& reg() const {
assert_true(!is_constant);
if (is_constant) {
XELOGE("{} - Invalid handling of constant! Report this to developers!",
__FUNCTION__);
}
return reg_;
}
operator const REG_TYPE&() const { return reg(); }

View File

@@ -1873,7 +1873,12 @@ struct VECTOR_ROTATE_LEFT_V128
} break;
case INT32_TYPE: {
if (e.IsFeatureEnabled(kX64EmitAVX512Ortho)) {
e.vprolvd(i.dest, i.src1, i.src2);
if (i.src2.is_constant) {
e.LoadConstantXmm(e.xmm0, i.src2.constant());
e.vprolvd(i.dest, i.src1, e.xmm0);
} else {
e.vprolvd(i.dest, i.src1, i.src2);
}
} else if (e.IsFeatureEnabled(kX64EmitAVX2)) {
Xmm temp = i.dest;
if (i.dest == i.src1 || i.dest == i.src2) {