fix issue 4996. (#5003)

This commit is contained in:
yuyang
2022-10-05 02:18:42 +08:00
committed by GitHub
parent f2105f95e9
commit 07584f6ac8
5 changed files with 40 additions and 16 deletions

View File

@@ -944,7 +944,7 @@
;; add low and high together.
(result Reg (alu_add low high)))
(value_regs result (zero_reg))))
(value_regs result (load_u64_constant 0))))
(convert u8 i32 u8_as_i32)
(decl u8_as_i32 (u8) i32)
@@ -999,7 +999,7 @@
(low Reg (gen_select_reg (IntCC.Equal) constant_64 high low_part (zero_reg)))
;; add low and high together.
(result Reg (alu_add high low)))
(value_regs result (zero_reg))))
(value_regs result (load_u64_constant 0))))
(decl gen_extend (Reg bool u8 u8) Reg)
(rule
@@ -1035,11 +1035,11 @@
;;;; for I128 unsigned extend.
(rule 1
(lower_extend r $false 64 128)
(value_regs (gen_move2 r $I64 $I64) (zero_reg)))
(value_regs (gen_move2 r $I64 $I64) (load_u64_constant 0)))
(rule
(lower_extend r $false from_bits 128)
(value_regs (gen_extend r $false from_bits 64) (zero_reg)))
(value_regs (gen_extend r $false from_bits 64) (load_u64_constant 0)))
;; extract the sign bit of integer.
(decl ext_sign_bit (Type Reg) Reg)
@@ -1223,7 +1223,7 @@
(high Reg (lower_popcnt (value_regs_get a 1) $I64))
;; add toghter.
(result Reg (alu_add low high)))
(value_regs result (zero_reg))))
(value_regs result (load_u64_constant 0))))
(decl lower_i128_rotl (ValueRegs ValueRegs) ValueRegs)
(rule
@@ -1378,7 +1378,7 @@
(tmp ValueRegs (lower_clz_i128 (value_regs low high)))
(count Reg (value_regs_get tmp 0))
(result Reg (alu_rr_imm12 (AluOPRRI.Addi) count (imm12_const -1))))
(value_regs result (zero_reg))))
(value_regs result (load_u64_constant 0))))
(decl imm12_const (i32) Imm12)
(extern constructor imm12_const imm12_const)

View File

@@ -642,8 +642,7 @@
(rule 1
(lower (has_type $I128 (bint (valueregs_2_reg x))))
(let ((tmp Reg (gen_bint x)))
(value_regs tmp (zero_reg)))
)
(value_regs tmp (load_u64_constant 0))))
;;;;; Rules for `isplit`;;;;;;;;;
(rule