| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
abs / neg are now part of the srcN_modifiers operands
llvm-svn: 218691
|
|
|
|
| |
llvm-svn: 218457
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are new register classes VCSrc_* which represent operands that
can take an SGPR, VGPR or inline constant. The VSrc_* class is now used
to represent operands that can take an SGPR, VGPR, or a 32-bit
immediate.
This allows us to have more accurate checks for legality of
immediates, since before we had no way to distinguish between operands
that supported any 32-bit immediate and operands which could only
support inline constants.
llvm-svn: 218334
|
|
|
|
|
|
|
|
|
| |
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: 217379
|
|
|
|
|
|
|
|
| |
Only handles LDS atomics for now, and will be used
to replace atomics with no uses with the no return
versions.
llvm-svn: 217378
|
|
|
|
|
|
|
| |
We can use a negate source modifier to match
this for fsub.
llvm-svn: 216735
|
|
|
|
| |
llvm-svn: 216279
|
|
|
|
| |
llvm-svn: 216278
|
|
|
|
|
|
|
| |
DS_1A uses a single offset encoding, so offset1 wasn't being
encoded.
llvm-svn: 216276
|
|
|
|
|
|
|
| |
This saves us from having to copy a 64-bit 0 value into VGPRs for
BUFFER_* instruction which only have a 12-bit immediate offset.
llvm-svn: 215399
|
|
|
|
| |
llvm-svn: 215398
|
|
|
|
|
|
|
|
| |
This bit was left uninitialized, which was causing some random failures
of piglit tests.
NOTE: This is a candidate for the 3.5 branch.
llvm-svn: 215396
|
|
|
|
| |
llvm-svn: 214866
|
|
|
|
|
|
| |
information and update all callers. No functional change.
llvm-svn: 214781
|
|
|
|
|
|
|
| |
These were just wrong, using the wrong register classes
and store2 was missing an operand.
llvm-svn: 214756
|
|
|
|
|
|
|
|
|
| |
This slipped in in r214467, so something like
V_MOV_B32_e32 v0, ... is now printed with 2 spaces
between the instruction name and first operand.
llvm-svn: 214660
|
|
|
|
|
|
|
| |
This isn't displayed for any other instructions anymore,
and isn't ever used.
llvm-svn: 214523
|
|
|
|
|
|
|
|
|
|
| |
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: 213571
|
|
|
|
| |
llvm-svn: 213564
|
|
|
|
| |
llvm-svn: 213563
|
|
|
|
|
|
| |
This pass converts 64-bit instructions to 32-bit when possible.
llvm-svn: 213561
|
|
|
|
|
|
| |
Therefore we don't need to add it to the implict defs list.
llvm-svn: 213558
|
|
|
|
| |
llvm-svn: 213551
|
|
|
|
|
|
| |
This operand is never used.
llvm-svn: 213549
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements a solution for constant initializers suggested
by Vadim Girlin, where we store the data after the shader code
and then use the S_GETPC instruction to compute its address.
This saves use the trouble of creating a new buffer for constant data
and then having to pass the pointer to the kernel via user SGPRs or the
input buffer.
llvm-svn: 213530
|
|
|
|
|
|
|
| |
This allows us to explicitly define the type of fixup that is needed,
so we can distinguish this from future fixup types.
llvm-svn: 213527
|
|
|
|
| |
llvm-svn: 212217
|
|
|
|
|
|
|
|
| |
Now that non-leaf ComplexPatterns are allowed we can fold all the MUBUF
store patterns into the instruction definition. We will also be able to
reuse this new ComplexPattern for MUBUF loads and atomic operations.
llvm-svn: 211644
|
|
|
|
|
|
|
| |
The operand that must match one of the others does matter,
and implement selecting for it.
llvm-svn: 211523
|
|
|
|
|
|
|
|
|
| |
This contains all the previous patches + getlod support on top of it.
It doesn't use SDNodes anymore, so it's quite small.
It also adds v16i8 to SReg_128, which is used for the sampler descriptor.
Reviewed-by: Tom Stellard
llvm-svn: 211228
|
|
|
|
|
|
| |
Copy what is done for 32-bit already so the order is about the same.
llvm-svn: 211186
|
|
|
|
| |
llvm-svn: 211178
|
|
|
|
| |
llvm-svn: 211120
|
|
|
|
|
|
|
| |
There is not such thing as a 0-data ds instruction, and the data
operand needs to be a vgpr set to something meaningful.
llvm-svn: 210756
|
|
|
|
| |
llvm-svn: 210680
|
|
|
|
| |
llvm-svn: 210675
|
|
|
|
| |
llvm-svn: 210568
|
|
|
|
|
|
| |
It has other uses besides shift instructions.
llvm-svn: 210478
|
|
|
|
|
|
|
|
| |
This will allow us to use a single MachineInstr to represent
instructions which behave the same but have different encodings
on some subtargets.
llvm-svn: 209028
|
|
|
|
| |
llvm-svn: 208479
|
|
|
|
|
|
| |
We were dropping the high bits of 64-bit immediate offsets.
llvm-svn: 208431
|
|
|
|
|
|
|
|
| |
Use i32 instead of specifying SReg_32. When this is
the pseudo INDIRECT_BASE_ADDR, this would give a bogus
verifier error.
llvm-svn: 207770
|
|
|
|
|
|
|
|
|
| |
Having i128 as a legal type complicates the legalization phase. v4i32
is already a legal type, so we will use that instead.
This fixes several piglit tests.
llvm-svn: 206500
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Better match what is done for VOPC to eventually
prefer selecting these.
llvm-svn: 206048
|
|
|
|
| |
llvm-svn: 205561
|