[all-commits] [llvm/llvm-project] a887dc: AMDGPU: Expand shuffle testing with generated tests
Matt Arsenault via All-commits
all-commits at lists.llvm.org
Mon Jan 20 01:24:35 PST 2025
Branch: refs/heads/users/arsenm/amdgpu/add-generated-shuffle-tests
Home: https://github.com/llvm/llvm-project
Commit: a887dca98339ff763c2ebca5320d75d253d2a8f4
https://github.com/llvm/llvm-project/commit/a887dca98339ff763c2ebca5320d75d253d2a8f4
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-20 (Mon, 20 Jan 2025)
Changed paths:
A llvm/test/CodeGen/AMDGPU/legal-shuffle.v2f32.ll
A llvm/test/CodeGen/AMDGPU/legal-shuffle.v2i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2bf16.v2bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2bf16.v3bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2bf16.v4bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2bf16.v8bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2f16.v2f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2f16.v3f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2f16.v4f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2f16.v8f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2f32.v2f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2f32.v3f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2f32.v4f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2f32.v8f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i16.v2i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i16.v3i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i16.v4i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i16.v8i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i32.v2i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i32.v3i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i32.v4i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i32.v8i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v2i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v3i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v4i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v8i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2p0.v2p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2p0.v3p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2p0.v4p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2p3.v2p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2p3.v3p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2p3.v4p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v2p3.v8p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3bf16.v2bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3bf16.v3bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3bf16.v4bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3f16.v2f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3f16.v3f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3f16.v4f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3f32.v2f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3f32.v3f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3f32.v4f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i16.v2i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i16.v3i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i16.v4i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i32.v2i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i32.v3i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i32.v4i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v2i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v3i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v4i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v2p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v3p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v4p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3p3.v2p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3p3.v3p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v3p3.v4p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4bf16.v2bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4bf16.v3bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4bf16.v4bf16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4f16.v2f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4f16.v3f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4f16.v4f16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v2f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v3f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v4f32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i16.v2i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i16.v3i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i16.v4i16.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v2i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v3i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v4i32.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v2i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v3i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v4i64.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v2p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v3p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v4p0.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v2p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v3p3.ll
A llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v4p3.ll
Log Message:
-----------
AMDGPU: Expand shuffle testing with generated tests
Add some generated tests with every shuffle permutation
for relevant vector element types and sizes. Not sure if this
is going overboard with the number of tests. I pruned out the largest
cases (16 and 32-bit cases are impractically large), and there's
redundancy when testing the pointer cases (at least for SelectionDAG).
This uses inline assembly to produce sample values because of how the
ABI is lowered when using a function argument. Since we break all
arguments into 32-bit pieces, a shuffle never ends up forming. We
need separate handling to reconstruct shuffles in contexts involving
physical registers in ABI contexts.
I wrote a small tool to generate these, so I can easily change the
exact test body. Not sure if it's worth posting anywhere.
This is in preparation for making better use of v_pk_mov_b32,
v_mov_b64 and s_mov_b64 in shuffles.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list