| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 239657
|
|
|
|
|
|
|
| |
Instead add m0 as an implicit operand. This helps avoid spills
of the m0 register in some cases.
llvm-svn: 237141
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DebugInfo] Add debug locations to constant SD nodes
This adds debug location to constant nodes of Selection DAG and updates
all places that create constants to pass debug locations
(see PR13269).
Can't guarantee that all locations are correct, but in a lot of cases choice
is obvious, so most of them should be. At least all tests pass.
Tests for these changes do not cover everything, instead just check it for
SDNodes, ARM and AArch64 where it's easy to get incorrect locations on
constants.
This is not complete fix as FastISel contains workaround for wrong debug
locations, which drops locations from instructions on processing constants,
but there isn't currently a way to use debug locations from constants there
as llvm::Constant doesn't cache it (yet). Although this is a bit different
issue, not directly related to these changes.
Differential Revision: http://reviews.llvm.org/D9084
llvm-svn: 235989
|
|
|
|
|
|
|
| |
This breaks a test:
http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/23870
llvm-svn: 235987
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds debug location to constant nodes of Selection DAG and updates
all places that create constants to pass debug locations
(see PR13269).
Can't guarantee that all locations are correct, but in a lot of cases choice
is obvious, so most of them should be. At least all tests pass.
Tests for these changes do not cover everything, instead just check it for
SDNodes, ARM and AArch64 where it's easy to get incorrect locations on
constants.
This is not complete fix as FastISel contains workaround for wrong debug
locations, which drops locations from instructions on processing constants,
but there isn't currently a way to use debug locations from constants there
as llvm::Constant doesn't cache it (yet). Although this is a bit different
issue, not directly related to these changes.
Differential Revision: http://reviews.llvm.org/D9084
llvm-svn: 235977
|
|
|
|
|
|
| |
No functional change intended.
llvm-svn: 234586
|
|
|
|
| |
llvm-svn: 233079
|
|
|
|
|
|
|
|
|
|
|
| |
This enables a few useful combines that used to only
use fma.
Also since v_mad_f32 apparently does not support denormals,
disable the existing cases that are custom handled if they are
requested.
llvm-svn: 230071
|
|
|
|
|
|
|
| |
We only need to set this on pseudo instructions which won't
be used by the assembler.
llvm-svn: 229689
|
|
|
|
| |
llvm-svn: 229507
|
|
|
|
|
|
| |
This version passes the OpenCL conformance test.
llvm-svn: 229239
|
|
|
|
|
|
|
|
| |
with countTrailingZeros
Update all callers.
llvm-svn: 228930
|
|
|
|
|
|
| |
These have different behavior from cvt_i32_f32 on NaN.
llvm-svn: 227693
|
|
|
|
| |
llvm-svn: 226230
|
|
|
|
|
|
|
| |
This saves a second compare and an and / or by using
the unordered comparison instructions.
llvm-svn: 224066
|
|
|
|
| |
llvm-svn: 224065
|
|
|
|
|
|
|
| |
This was done using the Sparc and PowerPC AsmParsers as guides. So far it
is very simple and only supports sopp instructions.
llvm-svn: 221994
|
|
|
|
| |
llvm-svn: 221118
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220110
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220109
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220108
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220107
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220106
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220105
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220104
|
|
|
|
| |
llvm-svn: 218457
|
|
|
|
|
|
|
|
|
| |
This reverts commit r218254.
The global_atomics.ll test fails with asserts disabled. For some reason,
the compiler fails to produce the atomic no return variants.
llvm-svn: 218257
|
|
|
|
| |
llvm-svn: 218254
|
|
|
|
| |
llvm-svn: 217777
|
|
|
|
| |
llvm-svn: 216279
|
|
|
|
| |
llvm-svn: 214475
|
|
|
|
|
|
|
|
|
|
| |
Abs/neg folding has moved out of foldOperands and into the instruction
selection phase using complex patterns. As a consequence of this
change, we now prefer to select the 64-bit encoding for most
instructions and the modifier operands have been dropped from
integer VOP3 instructions.
llvm-svn: 214467
|
|
|
|
| |
llvm-svn: 213551
|
|
|
|
| |
llvm-svn: 213088
|
|
|
|
| |
llvm-svn: 213018
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
R600 was using a clamped version of rsq, but SI was not. Add a
new rsq_clamped intrinsic and use them consistently.
It's unclear to me from the documentation what behavior
the R600 instructions have, so I assume they have the legacy behavior
described by the SI documents. For R600, use RECIPSQRT_IEEE
for both llvm.AMDGPU.rsq.legacy and llvm.AMDGPU.rsq. R600 also
has RECIPSQRT_FF, which I'm not sure how it fits in here.
llvm-svn: 211637
|
|
|
|
|
|
|
|
| |
These will be used for custom lowering and for library
implementations of various math functions, so it's useful
to expose these as builtins.
llvm-svn: 211247
|
|
|
|
|
|
| |
Most of these are no longer used any more.
llvm-svn: 210915
|
|
|
|
|
|
|
|
|
| |
Delete all unused ones, and add new AMDGPU named intrinsics for
the ones that are. Handle the old AMDIL names for comptability (although
remove their GCCBuiltin names) and add tests since there weren't any
for these before.
llvm-svn: 210827
|
|
|
|
| |
llvm-svn: 210680
|
|
|
|
| |
llvm-svn: 210678
|
|
|
|
|
|
|
| |
Use patterns that will also match the immediate offset to
match the normal read / writes.
llvm-svn: 210673
|
|
|
|
| |
llvm-svn: 210564
|
|
|
|
| |
llvm-svn: 209971
|
|
|
|
| |
llvm-svn: 209458
|
|
|
|
| |
llvm-svn: 209457
|
|
|
|
| |
llvm-svn: 209456
|
|
|
|
|
|
|
|
|
| |
Print in decimal for inline immediates, and hex otherwise. Use hex
always for offsets in addressing offsets.
This approximately matches what the shader compiler does.
llvm-svn: 206335
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Moving these patterns from TableGen files to PerformDAGCombine()
should allow us to generate better code by eliminating unnecessary
shifts and extensions earlier.
This also fixes a bug where the MAD pattern was calling
SimplifyDemandedBits with a 24-bit mask on the first operand
even when the full pattern wasn't being matched. This occasionally
resulted in some instructions being incorrectly deleted from the
program.
v2:
- Fix bug with 64-bit mul
llvm-svn: 205731
|
|
|
|
|
|
| |
Each GPU family now has its own file.
llvm-svn: 204615
|