open-power-sdk / pveclib

Power Vector Library
Apache License 2.0
29 stars 8 forks source link

Operations for generating small quadword integer const values. #164

Closed munroesj52 closed 2 years ago

munroesj52 commented 2 years ago

New operations to avoid stoirage load and cache misses while using small quadword integer constants. This became evident during the implementation of float128 implementation.

* src/pveclib/vec_int128_ppc.h [int128_const_0_0_3]:
Doxygen subsection for Loading small Quadword constants.
(vec_splat_s128, vec_splat_u128): New int128 operations.

* src/testsuite/arith128_test_i128.c (test_splat_128):
New unit test.
(test_vec_i128): Add unit test to driver.

* src/testsuite/vec_int128_dummy.c (__test_splatisq_16,
__test_splatisq_n1, __test_splatisq_0, __test_splatisq_n1_V1,
__test_splatisq_n1_V0, __test_splatisq_0_V0,
__test_splatisq_signmask_V0, __test_splatisq_15_V2,
__test_splatisq_15_V1, __test_splatisq_15_V0,
__test_splatisq_15, __test_splatisq_127, __test_splatiuq_0,
__test_splatiuq_15, __test_splatiuq_127, __test_splatiuq_128,
__test_splatiuq_128_V0): New compile tests.
* src/testsuite/vec_pwr9_dummy.c (__test_splatisq_16_PWR9,
__test_splatisq_n1_PWR9, __test_splatisq_0_PWR9,
__test_splatisq_15_PWR9, __test_splatisq_127_PWR9,
__test_splatisq_128_PWR9, __test_splatiuq_0_PWR9,
__test_splatiuq_15_PWR9, __test_splatiuq_127_PWR9,
__test_splatiuq_128_PWR9, __test_splatiuq_255_PWR9,
__test_splatiuq_256_PWR9): New compile tests.

Signed-off-by: Steven Munroe munroesj52@gmail.com

munroesj52 commented 2 years ago

Open two weeks, time to move on.