| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 220066
|
|
|
|
| |
llvm-svn: 220065
|
|
|
|
|
|
|
|
| |
The generic code trying to use findCommutedOpIndices won't
understand that it needs to swap the modifier operands also,
so it should fail if they are set.
llvm-svn: 220064
|
|
|
|
| |
llvm-svn: 220063
|
|
|
|
| |
llvm-svn: 220062
|
|
|
|
|
|
| |
Any commutable instruction will have at least src1.
llvm-svn: 220061
|
|
|
|
|
|
| |
This eliminates a use of the SI_ADDR64_RSRC pseudo
llvm-svn: 220057
|
|
|
|
|
|
|
| |
Just use REG_SEQUENCE directly, so there are fewer
instructions to need to deal with later.
llvm-svn: 220056
|
|
|
|
| |
llvm-svn: 219999
|
|
|
|
| |
llvm-svn: 219988
|
|
|
|
|
|
|
|
| |
These haven't been necessary since allowing
selecting SALU instructions in non-entry blocks
was enabled.
llvm-svn: 219956
|
|
|
|
|
|
| |
This was resulting in invalid simplifications of sdiv
llvm-svn: 219953
|
|
|
|
| |
llvm-svn: 219879
|
|
|
|
|
|
|
| |
Zero-width BFEs are combined away already, so there's no point in
handling them.
llvm-svn: 219868
|
|
|
|
| |
llvm-svn: 219867
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The SelectDS1Addr1Offset complex pattern always tries to store constant
lds pointers in the offset operand and store a zero value in the addr operand.
Since the addr operand does not accept immediates, the zero value
needs to first be copied to a register.
This newly created zero value will not go through normal instruction
selection, so we need to manually insert a V_MOV_B32_e32 in the complex
pattern.
This bug was hidden by the fact that if there was another zero value
in the DAG that had not been selected yet, then the CSE done by the DAG
would use the unselected node for the addr operand rather than the one
that was just created. This would lead to the zero value being selected
and the DAG automatically inserting a V_MOV_B32_e32 instruction.
llvm-svn: 219848
|
|
|
|
| |
llvm-svn: 219823
|
|
|
|
|
|
| |
SimplifyDemandedBits would break the other uses of the operand.
llvm-svn: 219819
|
|
|
|
| |
llvm-svn: 219799
|
|
|
|
|
|
| |
The .note.GNU-stack section is not SystemZ/X86 specific.
llvm-svn: 219796
|
|
|
|
| |
llvm-svn: 219778
|
|
|
|
| |
llvm-svn: 219777
|
|
|
|
|
|
|
|
|
| |
This effectively reverts revert 219707. After fixing the test to work with
new function name format and renamed intrinsic.
Reviewed-by: Tom Stellard <tom@stellard.net>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 219710
|
|
|
|
|
|
|
|
| |
This reverts commit r219705.
CodeGen/R600/work-item-intrinsics.ll was failing on linux.
llvm-svn: 219707
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
v2: Add SI lowering
Add test
v3: Place work dimensions after the kernel arguments.
v4: Calculate offset while lowering arguments
v5: rebase
v6: change prefix to AMDGPU
Reviewed-by: Tom Stellard <tom@stellard.net>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 219705
|
|
|
|
|
|
| |
Reviewed-by: Tom Stellard <tom@stellard.net>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 219704
|
|
|
|
|
|
|
|
| |
Use 0 as the base address for a constant address, so if
we have a constant address we can save moves and form
read2/write2s.
llvm-svn: 219698
|
|
|
|
| |
llvm-svn: 219616
|
|
|
|
|
|
|
| |
Match SC by using offset/offset0/offset1 and printing
in decimal.
llvm-svn: 219537
|
|
|
|
| |
llvm-svn: 219536
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently this only functions to match simple cases
where ds_read2_* / ds_write2_* instructions can be used.
In the future it might match some of the other weird
load patterns, such as direct to LDS loads.
Currently enabled only with a subtarget feature to enable
easier testing.
llvm-svn: 219533
|
|
|
|
| |
llvm-svn: 219519
|
|
|
|
| |
llvm-svn: 219429
|
|
|
|
|
|
|
| |
The instruction emitter will crash if it encounters a CopyToReg
node with a non-register operand like FrameIndex.
llvm-svn: 219428
|
|
|
|
|
|
|
|
| |
LLVM assumes INSERT_SUBREG will always have register operands, so
we need to legalize non-register operands, like FrameIndexes, to
avoid random assertion failures.
llvm-svn: 219420
|
|
|
|
|
|
|
| |
the TargetMachine to a TargetSubtargetInfo since everything
we wanted is off of that.
llvm-svn: 219382
|
|
|
|
| |
llvm-svn: 219256
|
|
|
|
| |
llvm-svn: 219255
|
|
|
|
| |
llvm-svn: 219254
|
|
|
|
| |
llvm-svn: 219253
|
|
|
|
| |
llvm-svn: 219242
|
|
|
|
| |
llvm-svn: 219238
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main reason for this is that the MCAsmInfo class,
which we were previously using as the base class, sets
PrivateGlobalPrefix to "L", which causes all global
functions that start with L to be treated as local symbols.
MCAsmInfoELF sets PrivateGlobalPrefix to ".L", which is what
we want, and it is probably a good idea to use this as the
base class anyway, since we are emitting ELF binaries.
llvm-svn: 219237
|
|
|
|
|
|
|
| |
Added a FIXME coment instead, we need to handle the case where the
two DS instructions being compared have different numbers of operands.
llvm-svn: 219236
|
|
|
|
|
|
| |
NFC.
llvm-svn: 219061
|
|
|
|
| |
llvm-svn: 219038
|
|
|
|
| |
llvm-svn: 219037
|
|
|
|
|
|
| |
Re-add the tests since they were deleted at some point
llvm-svn: 219036
|
|
|
|
| |
llvm-svn: 219002
|
|
|
|
| |
llvm-svn: 218999
|