[CPU] Fixed issue with const path in AVX512 vector left rotate.
- Added logging in case of similar issues
This commit is contained in:
@@ -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(); }
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user