x64: Mask shift amounts for small types (#4752)
* x64: Mask shift amounts for small types * cranelift: Disable i128 shifts in fuzzer again They are fixed. But we had a bunch of fuzzgen issues come in, and we don't want to accidentaly mark them as fixed * cranelift: Avoid masking shifts for 32 and 64 bit cases * cranelift: Add const shift tests and fix them * cranelift: Remove const `rotl` cases Now that `put_masked_in_imm8_gpr` works properly we can simplify rotl/rotr
This commit is contained in:
@@ -793,11 +793,6 @@
|
||||
(rule (lower (has_type (fits_in_64 ty) (rotl src amt)))
|
||||
(x64_rotl ty src (put_masked_in_imm8_gpr amt ty)))
|
||||
|
||||
(rule (lower (has_type (fits_in_64 ty)
|
||||
(rotl src (u64_from_iconst amt))))
|
||||
(x64_rotl ty src
|
||||
(const_to_type_masked_imm8 amt ty)))
|
||||
|
||||
|
||||
;; `i128`.
|
||||
|
||||
@@ -819,11 +814,6 @@
|
||||
(rule (lower (has_type (fits_in_64 ty) (rotr src amt)))
|
||||
(x64_rotr ty src (put_masked_in_imm8_gpr amt ty)))
|
||||
|
||||
(rule (lower (has_type (fits_in_64 ty)
|
||||
(rotr src (u64_from_iconst amt))))
|
||||
(x64_rotr ty src
|
||||
(const_to_type_masked_imm8 amt ty)))
|
||||
|
||||
|
||||
;; `i128`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user