diff --git a/src/backend_x64/emit_x64_vector.cpp b/src/backend_x64/emit_x64_vector.cpp index 26a5f006..b43d9468 100644 --- a/src/backend_x64/emit_x64_vector.cpp +++ b/src/backend_x64/emit_x64_vector.cpp @@ -945,7 +945,8 @@ static constexpr T LogicalVShift(T x, T y) { return x >> T(-shift_amount); } - return x << T(shift_amount); + using unsigned_type = std::make_unsigned_t; + return static_cast(static_cast(x) << static_cast(shift_amount)); } void EmitX64::EmitVectorLogicalVShiftS8(EmitContext& ctx, IR::Inst* inst) {