| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 137236
|
| |
|
|
|
|
|
|
|
| |
def : Pat<(X86Movss VR128:$src1,
(bc_v4i32 (v2i64 (load addr:$src2)))),
(MOVLPSrm VR128:$src1, addr:$src2)>;
This matches a MOVSS dag with a MOVLPS instruction. However, MOVSS will replace only the low 32 bits of the register, while the MOVLPS instruction will replace the low 64 bits. A testcase is added and illustrates the bug and also modified the one that was already present. Patch by Tanya Lattner.
llvm-svn: 137227
|
| |
|
|
| |
llvm-svn: 137225
|
| |
|
|
| |
llvm-svn: 137224
|
| |
|
|
|
|
| |
register subclasses. Hopefully this fixes some buildbots.
llvm-svn: 137223
|
| |
|
|
| |
llvm-svn: 137217
|
| |
|
|
| |
llvm-svn: 137194
|
| |
|
|
|
|
| |
operand decoding.
llvm-svn: 137189
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Cortex-A8, we use the NEON v2f32 instructions for f32 arithmetic. For
better latency, we also send D-register copies down the NEON pipeline by
translating them to vorr instructions.
This patch promotes even S-register copies to D-register copies when
possible so they can also go down the NEON pipeline. Example:
vldr.32 s0, LCPI0_0
loop:
vorr d1, d0, d0
loop2:
...
vadd.f32 d1, d1, d16
The vorr instruction looked like this after regalloc:
%S2<def> = COPY %S0, %D1<imp-def>
Copies involving odd S-registers, and copies that don't define the full
D-register are left alone.
llvm-svn: 137182
|
| |
|
|
| |
llvm-svn: 137180
|
| |
|
|
| |
llvm-svn: 137179
|
| |
|
|
| |
llvm-svn: 137176
|
| |
|
|
| |
llvm-svn: 137172
|
| |
|
|
|
|
| |
to tighten our decoding of BFI.
llvm-svn: 137168
|
| |
|
|
| |
llvm-svn: 137166
|
| |
|
|
|
|
| |
is the best we can do for these patterns. This fix PR10554.
llvm-svn: 137161
|
| |
|
|
| |
llvm-svn: 137160
|
| |
|
|
|
|
| |
Not sure about BLXi, but this is what the old disassembler did.
llvm-svn: 137156
|
| |
|
|
| |
llvm-svn: 137154
|
| |
|
|
| |
llvm-svn: 137153
|
| |
|
|
|
|
| |
instruction so target specific analysis isn't needed anymore.
llvm-svn: 137151
|
| |
|
|
| |
llvm-svn: 137150
|
| |
|
|
|
|
| |
rdar://9915869
llvm-svn: 137148
|
| |
|
|
| |
llvm-svn: 137147
|
| |
|
|
| |
llvm-svn: 137146
|
| |
|
|
|
|
|
|
|
|
| |
FixedLenDecoderEmitter.
This new disassembler can correctly decode all the testcases that the old one did, though
some "expected failure" testcases are XFAIL'd for now because it is not (yet) as strict in
operand checking as the old one was.
llvm-svn: 137144
|
| |
|
|
| |
llvm-svn: 137135
|
| |
|
|
|
|
|
| |
'static' variable will be emitted twice.
PR10081
llvm-svn: 137134
|
| |
|
|
|
|
|
| |
v4f64 = sitofp v4i32. This fix PR10559.
Also add support for v4i32 = fptosi v4f64.
llvm-svn: 137128
|
| |
|
|
| |
llvm-svn: 137127
|
| |
|
|
|
|
| |
- Calls are supported on SM 2.0+ for function with no return values
llvm-svn: 137125
|
| |
|
|
| |
llvm-svn: 137115
|
| |
|
|
| |
llvm-svn: 137114
|
| |
|
|
| |
llvm-svn: 137105
|
| |
|
|
| |
llvm-svn: 137104
|
| |
|
|
|
|
|
| |
the patterns already there to be more strict regarding the predicate.
This fixes PR10558
llvm-svn: 137100
|
| |
|
|
| |
llvm-svn: 137091
|
| |
|
|
| |
llvm-svn: 137090
|
| |
|
|
|
|
|
| |
Fix the instruction representation to correctly only allow post-indexed form.
Add tests.
llvm-svn: 137074
|
| |
|
|
| |
llvm-svn: 137073
|
| |
|
|
|
|
| |
They improve the verbose assembly.
llvm-svn: 137069
|
| |
|
|
| |
llvm-svn: 137067
|
| |
|
|
|
|
|
| |
Allow labels for load/store instructions when parsing. There's encoding
issues, still, so this doesn't work all the way through, yet.
llvm-svn: 137064
|
| |
|
|
|
|
|
| |
These the methods are target-independent since they simply scan the
memory operands. They can live in TargetInstrInfoImpl.
llvm-svn: 137063
|
| |
|
|
|
|
| |
range 1-32, with 32 encoded as 0.
llvm-svn: 137062
|
| |
|
|
|
|
| |
correctly active without HasT2ExtractPack. PR10611.
llvm-svn: 137061
|
| |
|
|
|
|
|
|
|
| |
of MCInstrDescs functions.
- Add overrides for ARM.
- Teach llvm-objdump to use this instead of plain MCInstrDesc.
llvm-svn: 137059
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
X86FloatingPoint keeps track of pending ST registers for an upcoming
inline asm instruction with fixed stack register constraints. It does
this by remembering which FP register holds the value that should appear
at a fixed stack position for the inline asm.
When that FP register is killed before the inline asm, make sure to
duplicate it to a scratch register, so the ST register still has a live
FP reference.
This could happen when the same FP register was copied to two ST
registers, or when a spill instruction is inserted between the ST copy
and the inline asm.
This fixes PR10602.
llvm-svn: 137050
|
| |
|
|
|
|
| |
Parsing and encoding for shifted index operands for load instructions.
llvm-svn: 136986
|
| |
|
|
|
|
|
| |
More parsing support for indexed loads. Fix pre-indexed with writeback
parsing for register offsets and handle basic post-indexed offsets.
llvm-svn: 136982
|