| Issue |
124538
|
| Summary |
GlobalISel BUILD_VECTOR hurts performance with more masks
|
| Labels |
backend:AMDGPU,
llvm:globalisel
|
| Assignees |
|
| Reporter |
tpopp
|
I'm not sure about the tradeoffs of BUILD_VECTOR, so I'm not sure how to find and avoid cases where this does benefit codegen.
https://godbolt.org/z/369z3hqv9
# To Reproduce
A command like `llc -march=amdgcn -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -global-isel` can be used on the IR
# Symptom and Cause
Various commands like `v_and_b32_e32 v3, 0xffff, v7` appear when constructing the BUILD_VECTOR result.
If `CombinerHelper::matchCombineInsertVecElts` is disabled, these masks go away and I've seen noticeable performance improvements in the full program that I'm running.
https://github.com/llvm/llvm-project/blob/6087c3049656bbaef51fffb48e2404e86f7e0d3f/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp#L3015
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs