FailedChanges

Summary

  1. AMDGPU/GlobalISel: Avoid getting MRI in every function Store it in AMDGPUInstructionSelector to avoid boilerplate in nearly every select function.
  2. [X86] Add broadcast load unfolding support for VPTESTMD/Q and VPTESTNMD/Q.
  3. [X86] Stop using UpdateNodeOperands in combineGatherScatter. Create new nodes like most other DAG combines. Creating new nodes is what we usually do. Have to explicitly check that we don't update to an existing node and having to manually manage the worklist is unusual. We can probably add a helper function to reduce the duplication of having to check if we should create a gather or scatter, but I wanted to just get the simple thing done.
  4. [X86] Split combineGatherScatter into a version for generic ISD nodes and another version for X86 specific nodes. The majority of the code doesn't run on the X86 nodes today since its gated by isBeforeLegalizeOps and we don't formm X86 nodes until after that. Except for a couple special case in type legalization. But I think we would probably break those if some of the transforms fire on them. I want to remove the hardcoded operand numbers and the unusual use of UpdateNodeOperands. Being able to know which ISD opcodes are present should help with that.
Revision 373139 by arsenm:
AMDGPU/GlobalISel: Avoid getting MRI in every function

Store it in AMDGPUInstructionSelector to avoid boilerplate in nearly
every select function.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cppllvm.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.hllvm.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
Revision 373138 by ctopper:
[X86] Add broadcast load unfolding support for VPTESTMD/Q and VPTESTNMD/Q.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrFoldTables.cppllvm.src/lib/Target/X86/X86InstrFoldTables.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-broadcast-unfold.llllvm.src/test/CodeGen/X86/avx512-broadcast-unfold.ll
Revision 373137 by ctopper:
[X86] Stop using UpdateNodeOperands in combineGatherScatter. Create new nodes like most other DAG combines.

Creating new nodes is what we usually do. Have to explicitly
check that we don't update to an existing node and having
to manually manage the worklist is unusual.

We can probably add a helper function to reduce the duplication
of having to check if we should create a gather or scatter, but
I wanted to just get the simple thing done.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 373136 by ctopper:
[X86] Split combineGatherScatter into a version for generic ISD nodes and another version for X86 specific nodes.

The majority of the code doesn't run on the X86 nodes today since
its gated by isBeforeLegalizeOps and we don't formm X86 nodes
until after that. Except for a couple special case in type
legalization. But I think we would probably break those if
some of the transforms fire on them.

I want to remove the hardcoded operand numbers and the unusual
use of UpdateNodeOperands. Being able to know which ISD opcodes
are present should help with that.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-vec-cmp.llllvm.src/test/CodeGen/X86/avx512-vec-cmp.ll