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

Reply via email to