afonso360 labeled issue #3273:
Hey, In #3272 @dheaton-arm implemented tests for a standalone
iadd_pairwise
instruction without aswiden_low
/swiden_high
/uwiden_low
/uwiden_high
instruction as an input. It looks like this case is not implemented in the x64 backend, instead we always perform an optimization and merge those previous instructions.
.clif
Test Casetest run target x86_64 machinst function %iaddp_i8x16(i8x16, i8x16) -> i8x16 { block0(v0: i8x16, v1: i8x16): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i8x16([1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], [17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32]) == [3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63] function %iaddp_i16x8(i16x8, i16x8) -> i16x8 { block0(v0: i16x8, v1: i16x8): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i16x8([1 2 3 4 5 6 7 8], [100 99 98 97 96 95 94 93]) == [3 7 11 15 199 195 191 187] function %iaddp_i32x4(i32x4, i32x4) -> i32x4 { block0(v0: i32x4, v1: i32x4): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i32x4([1 2 3 4], [5 6 7 8]) == [3 7 11 15] ; run: %iaddp_i32x4([4294967290 5 4294967290 5], [100 100 100 100]) == [4294967295 4294967295 200 200]
Steps to Reproduce
Run
clif-util the-above.clif
Expected Results
Tests to pass
Actual Results
Cranelift crashes with:
thread 'worker #0' panicked at 'not implemented: Operands not supported for IaddPairwise', cranelift\codegen\src\isa\x64\lower.rs:5095:17 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace FAIL .\filetests\filetests\runtests\test.clif: panicked in worker #0: not implemented: Operands not supported for IaddPairwise
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: x64Extra Info
The test file above should be in-tree at
cranelift/filetests/filetests/runtests/simd-iaddpairwise.clif
, once #3272 is merged.
afonso360 opened issue #3273:
Hey, In #3272 @dheaton-arm implemented tests for a standalone
iadd_pairwise
instruction without aswiden_low
/swiden_high
/uwiden_low
/uwiden_high
instruction as an input. It looks like this case is not implemented in the x64 backend, instead we always perform an optimization and merge those previous instructions.
.clif
Test Casetest run target x86_64 machinst function %iaddp_i8x16(i8x16, i8x16) -> i8x16 { block0(v0: i8x16, v1: i8x16): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i8x16([1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], [17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32]) == [3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63] function %iaddp_i16x8(i16x8, i16x8) -> i16x8 { block0(v0: i16x8, v1: i16x8): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i16x8([1 2 3 4 5 6 7 8], [100 99 98 97 96 95 94 93]) == [3 7 11 15 199 195 191 187] function %iaddp_i32x4(i32x4, i32x4) -> i32x4 { block0(v0: i32x4, v1: i32x4): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i32x4([1 2 3 4], [5 6 7 8]) == [3 7 11 15] ; run: %iaddp_i32x4([4294967290 5 4294967290 5], [100 100 100 100]) == [4294967295 4294967295 200 200]
Steps to Reproduce
Run
clif-util the-above.clif
Expected Results
Tests to pass
Actual Results
Cranelift crashes with:
thread 'worker #0' panicked at 'not implemented: Operands not supported for IaddPairwise', cranelift\codegen\src\isa\x64\lower.rs:5095:17 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace FAIL .\filetests\filetests\runtests\test.clif: panicked in worker #0: not implemented: Operands not supported for IaddPairwise
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: x64Extra Info
The test file above should be in-tree at
cranelift/filetests/filetests/runtests/simd-iaddpairwise.clif
, once #3272 is merged.
afonso360 labeled issue #3273:
Hey, In #3272 @dheaton-arm implemented tests for a standalone
iadd_pairwise
instruction without aswiden_low
/swiden_high
/uwiden_low
/uwiden_high
instruction as an input. It looks like this case is not implemented in the x64 backend, instead we always perform an optimization and merge those previous instructions.
.clif
Test Casetest run target x86_64 machinst function %iaddp_i8x16(i8x16, i8x16) -> i8x16 { block0(v0: i8x16, v1: i8x16): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i8x16([1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], [17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32]) == [3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63] function %iaddp_i16x8(i16x8, i16x8) -> i16x8 { block0(v0: i16x8, v1: i16x8): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i16x8([1 2 3 4 5 6 7 8], [100 99 98 97 96 95 94 93]) == [3 7 11 15 199 195 191 187] function %iaddp_i32x4(i32x4, i32x4) -> i32x4 { block0(v0: i32x4, v1: i32x4): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i32x4([1 2 3 4], [5 6 7 8]) == [3 7 11 15] ; run: %iaddp_i32x4([4294967290 5 4294967290 5], [100 100 100 100]) == [4294967295 4294967295 200 200]
Steps to Reproduce
Run
clif-util the-above.clif
Expected Results
Tests to pass
Actual Results
Cranelift crashes with:
thread 'worker #0' panicked at 'not implemented: Operands not supported for IaddPairwise', cranelift\codegen\src\isa\x64\lower.rs:5095:17 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace FAIL .\filetests\filetests\runtests\test.clif: panicked in worker #0: not implemented: Operands not supported for IaddPairwise
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: x64Extra Info
The test file above should be in-tree at
cranelift/filetests/filetests/runtests/simd-iaddpairwise.clif
, once #3272 is merged.
cfallin commented on issue #3273:
cc @jlb6740 -- we discussed at the time (in #3209) that it was fine to merge without this more general case in order to make forward progress, but that we should eventually fill out the general case. Thanks for creating the issue to track this!
abrown labeled issue #3273:
Hey, In #3272 @dheaton-arm implemented tests for a standalone
iadd_pairwise
instruction without aswiden_low
/swiden_high
/uwiden_low
/uwiden_high
instruction as an input. It looks like this case is not implemented in the x64 backend, instead we always perform an optimization and merge those previous instructions.
.clif
Test Casetest run target x86_64 machinst function %iaddp_i8x16(i8x16, i8x16) -> i8x16 { block0(v0: i8x16, v1: i8x16): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i8x16([1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], [17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32]) == [3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63] function %iaddp_i16x8(i16x8, i16x8) -> i16x8 { block0(v0: i16x8, v1: i16x8): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i16x8([1 2 3 4 5 6 7 8], [100 99 98 97 96 95 94 93]) == [3 7 11 15 199 195 191 187] function %iaddp_i32x4(i32x4, i32x4) -> i32x4 { block0(v0: i32x4, v1: i32x4): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i32x4([1 2 3 4], [5 6 7 8]) == [3 7 11 15] ; run: %iaddp_i32x4([4294967290 5 4294967290 5], [100 100 100 100]) == [4294967295 4294967295 200 200]
Steps to Reproduce
Run
clif-util the-above.clif
Expected Results
Tests to pass
Actual Results
Cranelift crashes with:
thread 'worker #0' panicked at 'not implemented: Operands not supported for IaddPairwise', cranelift\codegen\src\isa\x64\lower.rs:5095:17 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace FAIL .\filetests\filetests\runtests\test.clif: panicked in worker #0: not implemented: Operands not supported for IaddPairwise
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: x64Extra Info
The test file above should be in-tree at
cranelift/filetests/filetests/runtests/simd-iaddpairwise.clif
, once #3272 is merged.
alexcrichton commented on issue #3273:
This was implemented in https://github.com/bytecodealliance/wasmtime/pull/6561 for the x64 backend, with tests enabled there, so I'm going to close this
alexcrichton closed issue #3273:
Hey, In #3272 @dheaton-arm implemented tests for a standalone
iadd_pairwise
instruction without aswiden_low
/swiden_high
/uwiden_low
/uwiden_high
instruction as an input. It looks like this case is not implemented in the x64 backend, instead we always perform an optimization and merge those previous instructions.
.clif
Test Casetest run target x86_64 machinst function %iaddp_i8x16(i8x16, i8x16) -> i8x16 { block0(v0: i8x16, v1: i8x16): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i8x16([1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], [17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32]) == [3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63] function %iaddp_i16x8(i16x8, i16x8) -> i16x8 { block0(v0: i16x8, v1: i16x8): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i16x8([1 2 3 4 5 6 7 8], [100 99 98 97 96 95 94 93]) == [3 7 11 15 199 195 191 187] function %iaddp_i32x4(i32x4, i32x4) -> i32x4 { block0(v0: i32x4, v1: i32x4): v2 = iadd_pairwise v0, v1 return v2 } ; run: %iaddp_i32x4([1 2 3 4], [5 6 7 8]) == [3 7 11 15] ; run: %iaddp_i32x4([4294967290 5 4294967290 5], [100 100 100 100]) == [4294967295 4294967295 200 200]
Steps to Reproduce
Run
clif-util the-above.clif
Expected Results
Tests to pass
Actual Results
Cranelift crashes with:
thread 'worker #0' panicked at 'not implemented: Operands not supported for IaddPairwise', cranelift\codegen\src\isa\x64\lower.rs:5095:17 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace FAIL .\filetests\filetests\runtests\test.clif: panicked in worker #0: not implemented: Operands not supported for IaddPairwise
Versions and Environment
Cranelift version or commit: main
Operating system: Windows
Architecture: x64Extra Info
The test file above should be in-tree at
cranelift/filetests/filetests/runtests/simd-iaddpairwise.clif
, once #3272 is merged.
Last updated: Dec 23 2024 at 12:05 UTC