Craig Topper
124b2fd08c
Add new X86 AVX2 VBROADCAST instructions.
...
llvm-svn: 143612
2011-11-03 07:35:53 +00:00
Chad Rosier
74c4e2c2d9
Add support for sign-extending non-legal types in SelectSIToFP().
...
llvm-svn: 143603
2011-11-03 02:04:59 +00:00
Pete Cooper
c8a657a2b2
Treat objc selector reference globals as invariant so that MachineLICM can hoist them out of loops. Fixes <rdar://problem/6027699>
...
llvm-svn: 143600
2011-11-03 00:56:36 +00:00
Lang Hames
ceec8ec67e
Try to lower memset/memcpy/memmove to vector instructions on ARM where the alignment permits.
...
llvm-svn: 143582
2011-11-02 22:52:45 +00:00
Nick Lewycky
3c8d2be421
I added the first test to run llvm-dwarfdump.
...
llvm-svn: 143571
2011-11-02 21:02:27 +00:00
Nick Lewycky
691d7f80c2
Don't emit a directory entry for the value in DW_AT_comp_dir, that is always
...
implied by directory index zero.
llvm-svn: 143570
2011-11-02 20:55:33 +00:00
Chad Rosier
8a613c5ec5
Add support for comparing integer non-legal types.
...
llvm-svn: 143559
2011-11-02 18:08:25 +00:00
Owen Anderson
ac9fd95057
Fix the issue that r143552 was trying to address the _right_ way. One-register lists are legal on LDM/STM instructions, but we should not print the PUSH/POP aliases when they appear. This fixes round tripping on this instruction.
...
llvm-svn: 143557
2011-11-02 18:03:14 +00:00
Daniel Dunbar
4169d2ddc9
tests: Clean up tests/CMakeLists.txt to drop some variable configuration we no
...
longer need substitutions for.
llvm-svn: 143555
2011-11-02 17:54:51 +00:00
Andrew Trick
3c1e831108
Rewrite LinearFunctionTestReplace to handle pointer-type IVs.
...
We've been hitting asserts in this code due to the many supported
combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This
second rewrite of the code attempts to deal with these cases systematically.
llvm-svn: 143546
2011-11-02 17:19:57 +00:00
Craig Topper
a2a55bd0b4
More AVX2 instructions and intrinsics.
...
llvm-svn: 143536
2011-11-02 06:54:17 +00:00
Craig Topper
c5482eb697
Add a bunch more X86 AVX2 instructions and their corresponding intrinsics.
...
llvm-svn: 143529
2011-11-02 04:42:13 +00:00
Andrew Trick
c9baf3a7a1
Broaden an assert to handle enable-iv-rewrite=true following r143183.
...
Narrowest possible fix for PR11279.
llvm-svn: 143522
2011-11-02 00:02:45 +00:00
Kevin Enderby
b5dc88b394
Fixed a bug in the code to create a dwarf file and directory table entires when
...
it is separating the directory part from the basename of the FileName. Noticed
that this:
.file 1 "dir/foo"
when assembled got the two parts switched. Using the Mac OS X dwarfdump tool
it can be seen easily:
% dwarfdump -a a.out
include_directories[ 1] = 'foo'
Dir Mod Time File Len File Name
---- ---------- ---------- ---------------------------
file_names[ 1] 1 0x00000000 0x00000000 dir
...
Which should be:
...
include_directories[ 1] = 'dir'
Dir Mod Time File Len File Name
---- ---------- ---------- ---------------------------
file_names[ 1] 1 0x00000000 0x00000000 foo
llvm-svn: 143521
2011-11-01 23:39:05 +00:00
Owen Anderson
0d69f6aa51
Fix disassembly of some VST1 instructions.
...
llvm-svn: 143507
2011-11-01 22:18:13 +00:00
Eli Friedman
c60a0ad611
Teach the x86 backend a couple tricks for dealing with v16i8 sra by a constant splat value. Fixes PR11289.
...
llvm-svn: 143498
2011-11-01 21:18:39 +00:00
Richard Osborne
5a9e575e81
Don't fold negative offsets into cp / dp accesses to avoid relocation errors.
...
This can happen if the address + addend is less than the start of the cp / dp.
llvm-svn: 143459
2011-11-01 11:31:53 +00:00
Richard Osborne
8175a9601d
Combine various XCore tests for floating point intrinsic support into a single test.
...
llvm-svn: 143458
2011-11-01 10:51:48 +00:00
Richard Osborne
280d51dd14
Move various XCore tests to FileCheck
...
llvm-svn: 143457
2011-11-01 10:41:28 +00:00
Craig Topper
361c873b52
Fix operand type for x86 pmadd_ub_sw intrinsic.
...
llvm-svn: 143455
2011-11-01 07:25:22 +00:00
Eli Friedman
676558ae92
Make sure we use the right insertion point when instcombine replaces a PHI with another instruction. (Specifically, don't insert an arbitrary instruction before a PHI.) Fixes PR11275.
...
llvm-svn: 143437
2011-11-01 04:49:29 +00:00
Eli Friedman
172ff3d328
Move x86-specific tests into X86 folder.
...
llvm-svn: 143424
2011-11-01 03:21:48 +00:00
Eli Friedman
b32279f1fc
Move another test requiring x86 into X86 directory.
...
llvm-svn: 143421
2011-11-01 03:12:47 +00:00
Eli Friedman
b97ce79891
Move test requiring x86 backend into X86 directory.
...
llvm-svn: 143420
2011-11-01 03:11:41 +00:00
Matt Beaumont-Gay
6f16a87ae3
Change the actual tests to match the input directory rename (duh)
...
llvm-svn: 143404
2011-10-31 23:56:52 +00:00
Matt Beaumont-Gay
a5dfba561b
Rename "TestObjectFiles" to "Inputs" (like the pattern for Clang tests)
...
llvm-svn: 143400
2011-10-31 23:46:38 +00:00
Rafael Espindola
dd7a1f625b
Move test to the X86 directory, note the PR number and only run MC once.
...
llvm-svn: 143352
2011-10-31 17:23:09 +00:00
Owen Anderson
d7700cb13f
More not-crashing NEON disassembly updates for the vld refactoring.
...
llvm-svn: 143351
2011-10-31 17:17:32 +00:00
Craig Topper
dbf10927d7
Fix operand type for int_x86_ssse3_phadd_sw_128 intrinsic
...
llvm-svn: 143336
2011-10-31 07:16:37 +00:00
Craig Topper
c0f93132bd
Test case for X86 FS/GS Base intrinsics
...
llvm-svn: 143332
2011-10-31 02:15:47 +00:00
Craig Topper
6eaf58df7c
Begin adding AVX2 instructions. No selection support yet other than intrinsics.
...
llvm-svn: 143331
2011-10-31 02:15:10 +00:00
Nick Lewycky
7308946be2
Switch new .file directive emission off by default, change llc's flag for it to
...
-enable-dwarf-directory.
llvm-svn: 143326
2011-10-31 01:06:02 +00:00
Duncan Sands
1077c1fa88
Reapply commit 143214 with a fix: m_ICmp doesn't match conditions
...
with the given predicate, it matches any condition and returns the
predicate - d'oh! Original commit message:
The expression icmp eq (select (icmp eq x, 0), 1, x), 0 folds to false.
Spotted by my super-optimizer in 186.crafty and 450.soplex. We really
need a proper infrastructure for handling generalizations of this kind
of thing (which occur a lot), however this case is so simple that I decided
to go ahead and implement it directly.
llvm-svn: 143318
2011-10-30 19:56:36 +00:00
Benjamin Kramer
c0001c42c6
X86: Emit logical shift by constant splat of <16 x i8> as a <8 x i16> shift and zero out the bits where zeros should've been shifted in.
...
llvm-svn: 143315
2011-10-30 17:31:21 +00:00
Craig Topper
e77289b243
Fix return type for X86 mpsadbw instrinsic. The instruction takes in a vector of 8-bit integers, but produces a vector of 16-bit integers.
...
llvm-svn: 143313
2011-10-30 17:22:45 +00:00
Nadav Rotem
8282fc9e3b
Fix pr11266.
...
On x86: (shl V, 1) -> add V,V
Hardware support for vector-shift is sparse and in many cases we scalarize the
result. Additionally, on sandybridge padd is faster than shl.
llvm-svn: 143311
2011-10-30 13:24:22 +00:00
Nadav Rotem
68400d352b
Stabilize the test by specifying an exact cpu target
...
llvm-svn: 143307
2011-10-30 08:07:50 +00:00
Nadav Rotem
6c79131e39
Add a new DAGCombine optimization for BUILD_VECTOR.
...
If all of the inputs are zero/any_extended, create a new simple BV
which can be further optimized by other BV optimizations.
llvm-svn: 143297
2011-10-29 21:23:04 +00:00
Benjamin Kramer
24c4266ada
Force SSE for this test.
...
llvm-svn: 143291
2011-10-29 19:43:44 +00:00
Benjamin Kramer
d32c541fe4
SimplifyLibCalls: Use IRBuilder.CreateGlobalString when creating a string for printf->puts, which correctly sets the unnamed_addr bit on the resulting GlobalVariable.
...
Fixes PR11264.
llvm-svn: 143289
2011-10-29 19:43:31 +00:00
Eli Friedman
7c9bef9ba8
Revert r143214; it's breaking a bunch of stuff.
...
llvm-svn: 143265
2011-10-29 00:56:07 +00:00
Dan Gohman
826cec9a4b
Revert r143206, as there are still some failing tests.
...
llvm-svn: 143262
2011-10-29 00:41:52 +00:00
NAKAMURA Takumi
78a0f170d6
test/CodeGen/PowerPC/2008-10-17-AsmMatchingOperands.ll: [PR11218] Mark "REQUIRES: asserts" for now.
...
llvm-svn: 143247
2011-10-28 23:11:03 +00:00
Jim Grosbach
f3285dba99
Add Thumb2 alias for "mov Rd, #imm" to "mvn Rd, #~imm".
...
When '~imm' is encodable as a t2_so_imm but plain 'imm' is not. For example,
mov r2, #-3
becomes
mvn r2, #2
rdar://10349224
llvm-svn: 143235
2011-10-28 22:36:30 +00:00
Owen Anderson
9e033c5b03
Fix illegal disassembly testcase.
...
llvm-svn: 143231
2011-10-28 21:45:09 +00:00
Duncan Sands
7791a854c3
The expression icmp eq (select (icmp eq x, 0), 1, x), 0 folds to false.
...
Spotted by my super-optimizer in 186.crafty and 450.soplex. We really
need a proper infrastructure for handling generalizations of this kind
of thing (which occur a lot), however this case is so simple that I decided
to go ahead and implement it directly.
llvm-svn: 143214
2011-10-28 19:01:20 +00:00
Duncan Sands
3483c23658
A shift of a power of two is a power of two or zero.
...
For completeness - not spotted in the wild.
llvm-svn: 143211
2011-10-28 18:30:05 +00:00
Duncan Sands
5730fe6a31
Fold icmp ugt (udiv X, Y), X to false. Spotted by my super-optimizer
...
in 186.crafty.
llvm-svn: 143209
2011-10-28 18:17:44 +00:00
Owen Anderson
3dd6c949a5
Reapply r143202, with a manual decoding hook for SWP. This change inadvertantly exposed a decoding ambiguity between SWP and CPS that the auto-generated decoder can't handle.
...
llvm-svn: 143208
2011-10-28 18:02:13 +00:00
Dan Gohman
dedcc22bcd
Reapply r143177 and r143179 (reverting r143188), with scheduler
...
fixes: Use a separate register, instead of SP, as the
calling-convention resource, to avoid spurious conflicts with
actual uses of SP. Also, fix unscheduling of calling sequences,
which can be triggered by pseudo-two-address dependencies.
llvm-svn: 143206
2011-10-28 17:55:38 +00:00