Eli Friedman
79615641f1
Make x86 test actually test x86 code generation. Fix the
...
construct on ARM, which was breaking by coincidence, and add a similar
testcase for ARM.
llvm-svn: 79719
2009-08-22 03:13:10 +00:00
Chris Lattner
cf54f19140
rename test, make more specific.
...
llvm-svn: 79712
2009-08-22 00:44:24 +00:00
Dale Johannesen
f6b2759c5e
Use FileCheck even though this means testing for something
...
that has nothing to do with the point of the test, per Chris.
llvm-svn: 79569
2009-08-20 22:12:08 +00:00
Dan Gohman
f2f57ebc84
Fix an x86 code size regression: prefer RIP-relative addressing
...
over absolute addressing even in non-PIC mode (unless the address
has an index or something else incompatible), because it has a
smaller encoding.
llvm-svn: 79553
2009-08-20 18:23:44 +00:00
Dale Johannesen
facc542d5e
Use FileCheck for the test run where it's appropriate.
...
llvm-svn: 79534
2009-08-20 16:58:04 +00:00
Dale Johannesen
fc8ee02c25
Handle 'a' modifier in X86 asms. PR 4742.
...
llvm-svn: 79484
2009-08-19 22:44:41 +00:00
Bill Wendling
a62629a929
Make this test platform neutral.
...
llvm-svn: 79447
2009-08-19 18:51:45 +00:00
Dan Gohman
eb6fbd7fd1
Add an x86 peep that narrows TEST instructions to forms that use
...
a smaller encoding. These kinds of patterns are very frequent in
sqlite3, for example.
llvm-svn: 79439
2009-08-19 18:16:17 +00:00
Eli Friedman
914b41055a
PR4737: Fix a nasty bug in load narrowing with non-power-of-two types.
...
llvm-svn: 79415
2009-08-19 08:46:10 +00:00
Dan Gohman
56c2c54a37
Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, and
...
SRA_PARTS, as is done for SRL, SHL, and SRA.
llvm-svn: 79380
2009-08-18 23:36:17 +00:00
Dan Gohman
b2e9d23bd9
Make this test less sensitive to assembler differences.
...
llvm-svn: 79348
2009-08-18 17:19:46 +00:00
Chris Lattner
f0cde76e79
force a triple so this passes on darwin
...
llvm-svn: 79345
2009-08-18 16:55:45 +00:00
Dan Gohman
5022dd9cc9
Make tail merging handle blocks with repeated predecessors correctly, and
...
remove RemoveDuplicateSuccessor, as it is no longer necessary, and because
it breaks assumptions made in
MachineBasicBlock::isOnlyReachableByFallthrough.
Convert test/CodeGen/X86/omit-label.ll to FileCheck and add a testcase
for PR4732.
test/CodeGen/Thumb2/thumb2-ifcvt2.ll sees a diff with this commit due to
it being bugpoint-reduced to the point where it doesn't matter what the
condition for the branch is.
Add some more interesting code to
test/CodeGen/X86/2009-08-06-branchfolder-crash.ll, which is the testcase
that originally motivated the RemoveDuplicateSuccessor code, to help
verify that the original problem isn't being re-broken.
llvm-svn: 79338
2009-08-18 15:18:18 +00:00
Eli Friedman
d61a2e81bc
Fix test on Linux.
...
llvm-svn: 79140
2009-08-15 21:28:17 +00:00
Chris Lattner
d910c3a30e
implement support for CHECK-NEXT: in filecheck.
...
llvm-svn: 79123
2009-08-15 18:32:21 +00:00
Chris Lattner
56dc61a487
specify a target triple so global variable manglings are consistent etc.
...
llvm-svn: 79118
2009-08-15 17:35:05 +00:00
Chris Lattner
adc768c073
convert to filecheck.
...
llvm-svn: 79117
2009-08-15 17:28:09 +00:00
Chris Lattner
27345be0c7
rename this test to sse2.ll
...
llvm-svn: 79116
2009-08-15 17:24:09 +00:00
Chris Lattner
43cfb4db61
merge a bunch more sse3 tests into sse3.ll
...
llvm-svn: 79115
2009-08-15 17:21:44 +00:00
Chris Lattner
34e10616f5
convert test to filecheck format.
...
llvm-svn: 79114
2009-08-15 17:05:03 +00:00
Chris Lattner
58942aabef
rename test
...
llvm-svn: 79113
2009-08-15 17:01:44 +00:00
Chris Lattner
83d747a703
this is a test for sse3, simplify it.
...
llvm-svn: 79112
2009-08-15 17:01:19 +00:00
Dan Gohman
d69323d37a
On x86-64, for a varargs function, don't store the xmm registers to
...
the register save area if %al is 0. This avoids touching xmm
regsiters when they aren't actually used.
llvm-svn: 79061
2009-08-15 01:38:56 +00:00
Anton Korobeynikov
933d8e1118
Properly handle indirect win64 args when they're passed in memory
...
llvm-svn: 79009
2009-08-14 18:19:10 +00:00
Bruno Cardoso Lopes
f2855aabec
Change MCSectionELF to represent a section semantically instead of
...
syntactically as a string, very similiar to what Chris did with MachO.
The parsing support and validation is not introduced yet.
llvm-svn: 78890
2009-08-13 05:07:35 +00:00
Dan Gohman
4b9cae5af3
Various AsmWriter output cleanups. Use WriteAsOperand instead of
...
PrintUnmangledNameSafely.
llvm-svn: 78878
2009-08-13 01:36:44 +00:00
Dan Gohman
8ce3f1d1df
Use WriteAsOperand to print BasicBlock names.
...
llvm-svn: 78838
2009-08-12 20:56:56 +00:00
Dale Johannesen
f126196725
Test for 78821, sort of. While that bug is nondeterministic,
...
this test failed consistently on a Darwin build.
llvm-svn: 78822
2009-08-12 17:43:47 +00:00
Chris Lattner
1ba56c8c6c
one last (?) bad x86 triple test.
...
llvm-svn: 78801
2009-08-12 06:49:44 +00:00
Chris Lattner
27cd94c25a
fix some pastos in triple lines.
...
llvm-svn: 78800
2009-08-12 06:49:12 +00:00
Chris Lattner
f5d73f0aef
another bogus triple
...
llvm-svn: 78798
2009-08-12 06:36:52 +00:00
Chris Lattner
c709c59153
fix another broken target triple.
...
llvm-svn: 78796
2009-08-12 06:29:18 +00:00
Chris Lattner
cfbcfcc3c4
fix an incorrect target triple.
...
llvm-svn: 78795
2009-08-12 06:28:51 +00:00
Dan Gohman
f64bbe9328
Fix a bug in the DAGCombiner's handling of multiple linked
...
MERGE_VALUES nodes. Replacing the result values with the
operands in one MERGE_VALUES node may cause another
MERGE_VALUES node be CSE'd with the first one, and bring
its uses along, so that the first one isn't dead, as this
code expects. Fix this by iterating until the node is
really dead. This fixes PR4699.
llvm-svn: 78619
2009-08-10 23:43:19 +00:00
Chris Lattner
cc70d578be
Make the big switch: Change MCSectionMachO to represent a section *semantically*
...
instead of syntactically as a string. This means that it keeps track of the
segment, section, flags, etc directly and asmprints them in the right format.
This also includes parsing and validation support for llvm-mc and
"attribute(section)", so we should now start getting errors about invalid
section attributes from the compiler instead of the assembler on darwin.
Still todo:
1) Uniquing of darwin mcsections
2) Move all the Darwin stuff out to MCSectionMachO.[cpp|h]
3) there are a few FIXMEs, for example what is the syntax to get the
S_GB_ZEROFILL segment type?
llvm-svn: 78547
2009-08-10 01:39:42 +00:00
Eric Christopher
40031ed766
Add crc32 instruction and intrinsics. Add a new class of prefix
...
bytes for F2 0F 38 and propagate. Add a FIXME for a set
of possibilities which correspond to intrinsics already used.
New test.
llvm-svn: 78508
2009-08-08 21:55:08 +00:00
Anton Korobeynikov
e02d21a125
Do not generate 32-bit call on win64 when imm does not fit
...
llvm-svn: 78443
2009-08-07 23:59:21 +00:00
Chris Lattner
2a218ebe6a
rename test
...
llvm-svn: 78441
2009-08-07 23:57:30 +00:00
Chris Lattner
bb68377453
merge a bunch of tests together into one, convert to filecheck which
...
is more tolerant of whitespace differences.
llvm-svn: 78439
2009-08-07 23:56:42 +00:00
Dale Johannesen
44233430ea
Add the testcase from PR 4668. This works at the
...
moment, but it's a fragile area.
llvm-svn: 78358
2009-08-07 00:04:42 +00:00
Dale Johannesen
3cdd3d3633
Fix PR 4626, a crash in branch folding after OptimizeBlock
...
produced a CFG it wasn't prepared for.
llvm-svn: 78351
2009-08-06 22:56:40 +00:00
Dan Gohman
8456ae6bc8
Tidy up this testcase.
...
llvm-svn: 78322
2009-08-06 17:11:55 +00:00
Chris Lattner
c5342dabc4
reduce testcase.
...
llvm-svn: 78315
2009-08-06 16:14:33 +00:00
Dan Gohman
904eb68a6a
Remove an over-aggressive assert. Functions with empty struct return
...
types don't have any return values, from CodeGen's perspective.
This fixes PR4688.
llvm-svn: 78311
2009-08-06 15:07:58 +00:00
Anton Korobeynikov
9c59e1a990
Add tests for X86-64 code model handling. Small and kernel for now.
...
llvm-svn: 78300
2009-08-06 12:25:20 +00:00
Dan Gohman
668a0ff5ef
Fix a bug in x86's PreprocessForRMW logic that was exposed
...
by aggressive chain operand optimization. UpdateNodeOperands
does not modify the node in place if it would result in
a node identical to an existing node.
llvm-svn: 78297
2009-08-06 09:22:57 +00:00
Dan Gohman
01b8a3593b
Fix a few places in DAGCombiner that were creating all-ones-bits
...
and high-bits values in ways that weren't correct for integer
types wider than 64 bits. This fixes a miscompile in
PPMacroExpansion.cpp in clang on x86-64.
llvm-svn: 78295
2009-08-06 09:18:59 +00:00
Dan Gohman
ac47a4b9ed
Enable the new no-SP register classes by default. This is to address
...
PR4572. A few tests have some minor code regressions due to different
coalescing.
llvm-svn: 78217
2009-08-05 17:40:24 +00:00
Dan Gohman
1c75d47e13
Change these tests to use function attributes rather than special llc
...
command-line options.
llvm-svn: 78204
2009-08-05 16:37:27 +00:00
Dan Gohman
437fedf899
Revert changes accidentally committed along with r78163.
...
llvm-svn: 78165
2009-08-05 05:38:13 +00:00