Move insertlane to ISLE (#3544)
This also fixes a bug where `movsd` was incorrectly used with a memory operand for `insertlane`, causing it to actually zero the upper bits instead of preserving them. Note that the insertlane logic still exists in `lower.rs` because it's used as a helper for a few other instruction lowerings which aren't migrated to ISLE yet. This commit also adds a helper in ISLE itself for those other lowerings to use when they get implemented. Closes #3216
This commit is contained in:
12
tests/misc_testsuite/simd/replace-lane-preserve.wast
Normal file
12
tests/misc_testsuite/simd/replace-lane-preserve.wast
Normal file
@@ -0,0 +1,12 @@
|
||||
;; originally from #3216
|
||||
(module
|
||||
(func (result i64)
|
||||
v128.const i64x2 -1 1
|
||||
global.get 0
|
||||
f64x2.replace_lane 0
|
||||
i64x2.extract_lane 1
|
||||
)
|
||||
(global f64 (f64.const 1))
|
||||
(export "" (func 0)))
|
||||
|
||||
(assert_return (invoke "") (i64.const 1))
|
||||
Reference in New Issue
Block a user