Skip to content

Commit 7786266

Browse files
authored
AMDGPU: Expand shuffle testing with generated tests (llvm#123574)
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.
1 parent e87b843 commit 7786266

File tree

79 files changed

+900397
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+900397
-0
lines changed

llvm/test/CodeGen/AMDGPU/shufflevector.v2bf16.v2bf16.ll

Lines changed: 2042 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2bf16.v3bf16.ll

Lines changed: 4437 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2bf16.v4bf16.ll

Lines changed: 7377 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2bf16.v8bf16.ll

Lines changed: 27671 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2f16.v2f16.ll

Lines changed: 2042 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2f16.v3f16.ll

Lines changed: 4437 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2f16.v4f16.ll

Lines changed: 7377 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2f16.v8f16.ll

Lines changed: 27671 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2f32.v2f32.ll

Lines changed: 1875 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2f32.v3f32.ll

Lines changed: 4236 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2f32.v4f32.ll

Lines changed: 6929 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2f32.v8f32.ll

Lines changed: 25924 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i16.v2i16.ll

Lines changed: 2021 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i16.v3i16.ll

Lines changed: 4404 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i16.v4i16.ll

Lines changed: 7263 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i16.v8i16.ll

Lines changed: 27155 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i32.v2i32.ll

Lines changed: 1875 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i32.v3i32.ll

Lines changed: 4236 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i32.v4i32.ll

Lines changed: 6929 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i32.v8i32.ll

Lines changed: 25924 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v2i64.ll

Lines changed: 2104 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v3i64.ll

Lines changed: 4469 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v4i64.ll

Lines changed: 7547 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v8i64.ll

Lines changed: 31395 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2p0.v2p0.ll

Lines changed: 2104 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2p0.v3p0.ll

Lines changed: 4469 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2p0.v4p0.ll

Lines changed: 7547 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2p3.v2p3.ll

Lines changed: 1875 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2p3.v3p3.ll

Lines changed: 4236 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2p3.v4p3.ll

Lines changed: 6929 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v2p3.v8p3.ll

Lines changed: 25924 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3bf16.v2bf16.ll

Lines changed: 4042 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3bf16.v3bf16.ll

Lines changed: 9009 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3bf16.v4bf16.ll

Lines changed: 15446 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3f16.v2f16.ll

Lines changed: 4042 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3f16.v3f16.ll

Lines changed: 9009 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3f16.v4f16.ll

Lines changed: 15446 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3f32.v2f32.ll

Lines changed: 4166 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3f32.v3f32.ll

Lines changed: 8883 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3f32.v4f32.ll

Lines changed: 15324 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i16.v2i16.ll

Lines changed: 3964 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i16.v3i16.ll

Lines changed: 8900 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i16.v4i16.ll

Lines changed: 15161 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i32.v2i32.ll

Lines changed: 4166 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i32.v3i32.ll

Lines changed: 8883 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i32.v4i32.ll

Lines changed: 15324 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v2i64.ll

Lines changed: 4508 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v3i64.ll

Lines changed: 9583 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v4i64.ll

Lines changed: 16611 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v2p0.ll

Lines changed: 4508 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v3p0.ll

Lines changed: 9583 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v4p0.ll

Lines changed: 16611 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3p3.v2p3.ll

Lines changed: 4166 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3p3.v3p3.ll

Lines changed: 8883 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v3p3.v4p3.ll

Lines changed: 15324 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4bf16.v2bf16.ll

Lines changed: 6535 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4bf16.v3bf16.ll

Lines changed: 14253 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4bf16.v4bf16.ll

Lines changed: 24202 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4f16.v2f16.ll

Lines changed: 6535 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4f16.v3f16.ll

Lines changed: 14253 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4f16.v4f16.ll

Lines changed: 24202 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v2f32.ll

Lines changed: 6422 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v3f32.ll

Lines changed: 14014 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v4f32.ll

Lines changed: 24149 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i16.v2i16.ll

Lines changed: 6199 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i16.v3i16.ll

Lines changed: 13983 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i16.v4i16.ll

Lines changed: 23344 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v2i32.ll

Lines changed: 6434 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v3i32.ll

Lines changed: 14014 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v4i32.ll

Lines changed: 24149 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v2i64.ll

Lines changed: 7310 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v3i64.ll

Lines changed: 16014 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v4i64.ll

Lines changed: 27249 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v2p0.ll

Lines changed: 7310 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v3p0.ll

Lines changed: 16014 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v4p0.ll

Lines changed: 27249 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v2p3.ll

Lines changed: 6434 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v3p3.ll

Lines changed: 14014 additions & 0 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v4p3.ll

Lines changed: 24149 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)