Refactor to avoid too strict assertion. Fix for 3160 and 3161.
Assertion was intended for SIMD lowering of F64x2ConvertLowI32x4U
This commit is contained in:
48
tests/misc_testsuite/simd/cvt-from-uint.wast
Normal file
48
tests/misc_testsuite/simd/cvt-from-uint.wast
Normal file
@@ -0,0 +1,48 @@
|
||||
|
||||
;; Tests inspired by https://github.com/bytecodealliance/wasmtime/issues/3161
|
||||
;; which found issue in lowering Opcode::FcvtFromUint where valid instruction
|
||||
;; patterns were rejected
|
||||
(module
|
||||
(func (export "i16x8.extend_low_i8x16_s") (param v128) (result v128)
|
||||
local.get 0
|
||||
i16x8.extend_low_i8x16_s
|
||||
f32x4.convert_i32x4_u)
|
||||
(func (export "i16x8.extend_low_i8x16_u") (param v128) (result v128)
|
||||
local.get 0
|
||||
i16x8.extend_low_i8x16_u
|
||||
f32x4.convert_i32x4_u)
|
||||
(func (export "i32x4.extend_low_i16x8_s") (param v128) (result v128)
|
||||
local.get 0
|
||||
i32x4.extend_low_i16x8_s
|
||||
f32x4.convert_i32x4_u)
|
||||
(func (export "i32x4.extend_low_i16x8_u") (param v128) (result v128)
|
||||
local.get 0
|
||||
i32x4.extend_low_i16x8_u
|
||||
f32x4.convert_i32x4_u)
|
||||
(func (export "i64x2.extend_low_i32x4_s") (param v128) (result v128)
|
||||
local.get 0
|
||||
i64x2.extend_low_i32x4_s
|
||||
f32x4.convert_i32x4_u)
|
||||
(func (export "i64x2.extend_low_i32x4_u") (param v128) (result v128)
|
||||
local.get 0
|
||||
i64x2.extend_low_i32x4_u
|
||||
f32x4.convert_i32x4_u)
|
||||
)
|
||||
|
||||
(assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
|
||||
(v128.const f32x4 0 0 0 0))
|
||||
|
||||
(assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
|
||||
(v128.const f32x4 0 0 0 0))
|
||||
|
||||
(assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
|
||||
(v128.const f32x4 0 0 0 0))
|
||||
|
||||
(assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
|
||||
(v128.const f32x4 0 0 0 0))
|
||||
|
||||
(assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
|
||||
(v128.const f32x4 0 0 0 0))
|
||||
|
||||
(assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
|
||||
(v128.const f32x4 0 0 0 0))
|
||||
Reference in New Issue
Block a user