1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

24044 Commits

Author SHA1 Message Date
Chris Lattner
f358863a69 We have an assertion that checks that we do not encode null values into the
.bc file if they are supposed to be implicit.  This is cool, except that it
checked *after* constant expr folding: improving constant expr folding could
cause the .bc reader to assert out on old .bc files.  Move the check so that
it checks all simple constants, but no constantexprs.

llvm-svn: 27480
2006-04-07 05:00:02 +00:00
Chris Lattner
8c5ac50fb4 Constant fold extractelement(zero, x) -> zero
llvm-svn: 27479
2006-04-07 04:44:06 +00:00
Chris Lattner
32b65613d9 Fix inlining of insert/extract element constantexprs
llvm-svn: 27478
2006-04-07 04:41:03 +00:00
Evan Cheng
37b4263eb8 Add code to RemapOperand() to handle Instruction::ExtractElement and
Instruction::InsertElement.

llvm-svn: 27477
2006-04-07 01:27:42 +00:00
Evan Cheng
aaa0d70b65 A MOVPS2SSmr, i.e. _mm_store_ss, encoding bug.
Also MOVPDI2DIrr.

llvm-svn: 27476
2006-04-06 23:53:29 +00:00
Evan Cheng
f49979cf28 Remove int_x86_sse_loadh_ps and int_x86_sse_loadl_ps. These are now lowered
by the frontend to shuffles.

llvm-svn: 27475
2006-04-06 23:25:41 +00:00
Evan Cheng
9f27046dc9 - movlp{s|d} and movhp{s|d} support.
- Normalize shuffle nodes so result vector lower half elements come from the
  first vector, the rest come from the second vector. (Except for the
  exceptions :-).
- Other minor fixes.

llvm-svn: 27474
2006-04-06 23:23:56 +00:00
Evan Cheng
e248d318a8 New entries.
llvm-svn: 27473
2006-04-06 23:21:24 +00:00
Evan Cheng
e5eefd369a 1. If both vector operands of a vector_shuffle are undef, turn it into an undef.
2. A shuffle mask element can also be an undef.

llvm-svn: 27472
2006-04-06 23:20:43 +00:00
Andrew Lenharth
892b890d6a This may be overconservative, but it lets the new cfe compile
llvm-svn: 27471
2006-04-06 23:18:45 +00:00
Chris Lattner
db7dfe8c61 Add an item
llvm-svn: 27470
2006-04-06 23:16:19 +00:00
Chris Lattner
a390188fd4 Make sure to return the result in the right type.
llvm-svn: 27469
2006-04-06 23:12:19 +00:00
Andrew Lenharth
038b30839d Move this to lib/Analysis.
This reduces Core size, yay.

llvm-svn: 27468
2006-04-06 22:58:58 +00:00
Chris Lattner
c0680ae07e Match vpku[hw]um(x,x).
Convert vsldoi(x,x) to work the same way other (x,x) cases work.

llvm-svn: 27467
2006-04-06 22:28:36 +00:00
Chris Lattner
f3f1a0f172 Add testcases for vpku[hw]um(x,x)
llvm-svn: 27466
2006-04-06 22:27:59 +00:00
Reid Spencer
f6ff0f1ead Add the variable llvmgccmajvers to the site.exp file. This will contain
the major version number of llvm-gcc, as configured.

llvm-svn: 27465
2006-04-06 22:22:08 +00:00
Reid Spencer
8067330e59 Avoid building the runtime libraries if llvm-gcc version 4 is detected.
llvm-svn: 27464
2006-04-06 22:15:51 +00:00
Chris Lattner
a52d88ee89 Add support for matching vmrg(x,x) patterns
llvm-svn: 27463
2006-04-06 22:02:42 +00:00
Chris Lattner
5340c1f247 Add vmrg(x,x) tests
llvm-svn: 27462
2006-04-06 22:02:11 +00:00
Reid Spencer
750a186e86 For support of new GCC v4, obtain the full and major versions of the
llvm-gcc command. This will help distinguish which version is being used
so the makefiles can accommodate.

llvm-svn: 27461
2006-04-06 22:00:36 +00:00
Andrew Lenharth
95d16ade31 fix some linking problems with the new gcc
llvm-svn: 27460
2006-04-06 21:26:32 +00:00
Chris Lattner
e1efb9ea23 Add tests for vmrg[hl]*
llvm-svn: 27459
2006-04-06 21:19:37 +00:00
Chris Lattner
b19cdc8fc1 These intrinsics are now lowered by the FE.
llvm-svn: 27458
2006-04-06 21:12:48 +00:00
Chris Lattner
300076cbd8 Pattern match vmrg* instructions, which are now lowered by the CFE into shuffles.
llvm-svn: 27457
2006-04-06 21:11:54 +00:00
Chris Lattner
9f8d5b538e Infer element types for shuffle masks
llvm-svn: 27456
2006-04-06 20:36:51 +00:00
Chris Lattner
7f54d730f1 rename a method, to avoid confusion with llvm intrinsics.
llvm-svn: 27455
2006-04-06 20:19:52 +00:00
Chris Lattner
9d4b5fa2b8 test vperm promotion
llvm-svn: 27454
2006-04-06 19:21:02 +00:00
Chris Lattner
6cf87c1b01 remove two done items
llvm-svn: 27453
2006-04-06 19:19:38 +00:00
Chris Lattner
bc0489232b Lower vperm(x,y, mask) -> shuffle(x,y,mask) if mask is constant. This allows
us to compile oh-so-realistic stuff like this:

 vec_vperm(A, B, (vector unsigned char){14});

to:
        vspltb v0, v0, 14

instead of:

        vspltisb v0, 14
        vperm v0, v2, v1, v0

llvm-svn: 27452
2006-04-06 19:19:17 +00:00
Chris Lattner
09b9548243 this is no longer an intrinsic.
llvm-svn: 27451
2006-04-06 18:29:17 +00:00
Chris Lattner
2875bb116e Support pattern matching vsldoi(x,y) and vsldoi(x,x), which allows the f.e. to
lower it and LLVM to have one fewer intrinsic.  This implements
CodeGen/PowerPC/vec_shuffle.ll

llvm-svn: 27450
2006-04-06 18:26:28 +00:00
Chris Lattner
e547562ea3 new testcase
llvm-svn: 27449
2006-04-06 18:26:13 +00:00
Chris Lattner
10fa7be550 Compile the vpkuhum/vpkuwum intrinsics into vpkuhum/vpkuwum instead of into
vperm with a perm mask lvx'd from the constant pool.

llvm-svn: 27448
2006-04-06 17:23:16 +00:00
Chris Lattner
df19e57d3f Add support for building the LLVM libraries and tools as a Mac OS/X
universal binary, by specifying UNIVERSAL=1 on the make command line.

llvm-svn: 27447
2006-04-06 06:30:15 +00:00
Evan Cheng
d2d7aff6ba POR encoded as PAND, yikes.
llvm-svn: 27446
2006-04-06 01:49:20 +00:00
Evan Cheng
dcf423ad74 An entry about comi / ucomi intrinsics.
llvm-svn: 27445
2006-04-05 23:46:04 +00:00
Evan Cheng
6d470008c8 Support for comi / ucomi intrinsics.
llvm-svn: 27444
2006-04-05 23:38:46 +00:00
Evan Cheng
f1a2e421c3 Added comi and ucomi SSE intrinsics.
llvm-svn: 27443
2006-04-05 23:37:18 +00:00
Chris Lattner
7f13e50435 Add all of the data stream intrinsics and instructions. woo
llvm-svn: 27442
2006-04-05 22:27:14 +00:00
Chris Lattner
86763bafa7 add altivec ds* intrinsics
llvm-svn: 27441
2006-04-05 22:18:01 +00:00
Chris Lattner
338945e669 Fix a typo
llvm-svn: 27440
2006-04-05 20:15:25 +00:00
Chris Lattner
d1b47b18ed Fix CodeGen/PowerPC/2006-04-05-splat-ish.ll
llvm-svn: 27439
2006-04-05 17:39:25 +00:00
Chris Lattner
e4a7c4ecc2 new testcase that was miscompiled to vspltisb
llvm-svn: 27438
2006-04-05 17:38:50 +00:00
Evan Cheng
056e0af55a Handle canonical form of e.g.
vector_shuffle v1, v1, <0, 4, 1, 5, 2, 6, 3, 7>

This is turned into
vector_shuffle v1, <undef>, <0, 0, 1, 1, 2, 2, 3, 3>
by dag combiner.

It would match a {p}unpckl on x86.

llvm-svn: 27437
2006-04-05 07:20:06 +00:00
Chris Lattner
fe2926cf46 Make a vector live across blocks have the correct Vec type. This fixes
CodeGen/X86/2006-04-04-CrossBlockCrash.ll

llvm-svn: 27436
2006-04-05 06:54:42 +00:00
Chris Lattner
4bdc1f01dd new testcase
llvm-svn: 27435
2006-04-05 06:54:14 +00:00
Evan Cheng
d562dfa0db Bogus assert
llvm-svn: 27434
2006-04-05 06:11:20 +00:00
Evan Cheng
9e56e97205 Fallthrough to expand if a VECTOR_SHUFFLE cannot be custom lowered.
llvm-svn: 27433
2006-04-05 06:09:26 +00:00
Evan Cheng
abd8dc54c2 Exapnd a VECTOR_SHUFFLE to a BUILD_VECTOR if target asks for it to be expanded
or custom lowering fails.

llvm-svn: 27432
2006-04-05 06:07:11 +00:00
Jeff Cohen
9455fcb13d Fix more tablegen depedency issues in Visual Studio.
llvm-svn: 27431
2006-04-05 05:19:18 +00:00