v_permlane16_b32 and v_permlanex16_b32 should not set abs and neg src
modifiers on any input, but they can set op_sel on src0 or src1 to
represent fi or bc when desired. The ISel patterns were setting
the src_modifier bits to -1, effectively setting abs and neg as well,
whenever it was intended to set op_sel, due to an error in ISel. ISel
should now correctly only set the op_sel bits.
Details
Details
- Reviewers
arsenm cfang foad - Commits
- rG80a8e6805ab8: [AMDGPU] Don't set src mods on permlane16
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Time | Test | |
---|---|---|
350 ms | x64 debian > Flang.Intrinsics::math-codegen.fir |
Event Timeline
llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp | ||
---|---|---|
5048 | Why aren’t we using the imported pattern here? |
llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp | ||
---|---|---|
5048 | I'm not very familiar with this part of the codebase or how GISDNodeXFormEquiv works, so I don't know what you mean. If I delete the function renderOpSelTImm I get the error when compiling |
Why aren’t we using the imported pattern here?