From 718748fe61a60b6375e57293200c8be434c1cb02 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 19 Aug 2022 11:42:46 -0400 Subject: [PATCH] pan/bi: Test int8/16 -> float32 opts These are easy, since round modes don't matter. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/test/test-optimizer.cpp | 29 ++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/panfrost/bifrost/test/test-optimizer.cpp b/src/panfrost/bifrost/test/test-optimizer.cpp index e4e16a32ea0..b6cdc86929a 100644 --- a/src/panfrost/bifrost/test/test-optimizer.cpp +++ b/src/panfrost/bifrost/test/test-optimizer.cpp @@ -438,3 +438,32 @@ TEST_F(Optimizer, VarTexCoord32) bi_var_tex_f32_to(b, reg, false, BI_SAMPLE_CENTER, BI_UPDATE_STORE, 0, 0); }); } + +TEST_F(Optimizer, Int8ToFloat32) +{ + for (unsigned i = 0; i < 4; ++i) { + CASE(bi_s32_to_f32_to(b, reg, bi_s8_to_s32(b, bi_byte(x, i))), + bi_s8_to_f32_to(b, reg, bi_byte(x, i))); + + CASE(bi_s32_to_f32_to(b, reg, bi_u8_to_u32(b, bi_byte(x, i))), + bi_u8_to_f32_to(b, reg, bi_byte(x, i))); + + CASE(bi_u32_to_f32_to(b, reg, bi_u8_to_u32(b, bi_byte(x, i))), + bi_u8_to_f32_to(b, reg, bi_byte(x, i))); + } +} + + +TEST_F(Optimizer, Int16ToFloat32) +{ + for (unsigned i = 0; i < 2; ++i) { + CASE(bi_s32_to_f32_to(b, reg, bi_s16_to_s32(b, bi_half(x, i))), + bi_s16_to_f32_to(b, reg, bi_half(x, i))); + + CASE(bi_s32_to_f32_to(b, reg, bi_u16_to_u32(b, bi_half(x, i))), + bi_u16_to_f32_to(b, reg, bi_half(x, i))); + + CASE(bi_u32_to_f32_to(b, reg, bi_u16_to_u32(b, bi_half(x, i))), + bi_u16_to_f32_to(b, reg, bi_half(x, i))); + } +}