From 57f4ea4d4ab160751f4dbceb6f906ded9b9bbfee Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 2 Feb 2024 06:32:16 +0530 Subject: [PATCH] Add some tests for broadcast from constant intrinsic --- tools/simdstring/generate.go | 16 ++++++++++++++++ tools/simdstring/intrinsics_test.go | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/tools/simdstring/generate.go b/tools/simdstring/generate.go index 5e9657bbc..a0b7872fc 100644 --- a/tools/simdstring/generate.go +++ b/tools/simdstring/generate.go @@ -1169,8 +1169,24 @@ func (s *State) test_set1_epi8() { return } vec := f.Vec() + r := f.LoadParam("b") + q := f.Reg() + f.SetRegisterTo(q, int(' ')) + f.JumpIfEqual(r, q, "space") + f.SetRegisterTo(q, 11) + f.JumpIfEqual(r, q, "eleven") f.Set1Epi8("b", vec) f.store_vec_in_param(vec, `ans`) + f.Return() + f.Label("space") + f.Set1Epi8(int(' '), vec) + f.store_vec_in_param(vec, `ans`) + f.Return() + f.Label("eleven") + f.Set1Epi8(-1, vec) + f.store_vec_in_param(vec, `ans`) + f.Return() + } func (s *State) test_cmpeq_epi8() { diff --git a/tools/simdstring/intrinsics_test.go b/tools/simdstring/intrinsics_test.go index c88fff6e3..9e50c31ba 100644 --- a/tools/simdstring/intrinsics_test.go +++ b/tools/simdstring/intrinsics_test.go @@ -236,9 +236,10 @@ func TestIntrinsics(t *testing.T) { ae(sz, `load_test`, a, test_load(a)) }) tests = append(tests, func(sz int) { - for _, b := range []byte{1, 0b110111, 0xff, 0} { + for _, b := range []byte{1, 0b110111, 0xff, 0, ' '} { ae(sz, `set1_epi8_test`, broadcast_byte(b, sz), test_set1_epi8(b, sz)) } + ae(sz, `set1_epi8_test`, broadcast_byte(0xff, sz), test_set1_epi8(11, sz)) }) tests = append(tests, func(sz int) { a := ordered_bytes(sz)