- Aug 23, 2013
-
-
Rafael Espindola authored
There is no advantage in being different and using the same names simplifies clang a bit. llvm-svn: 189141
-
Jim Cownie authored
llvm-svn: 189111
-
- Aug 22, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 189005
-
- Aug 21, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 188899
-
Craig Topper authored
Synchronize VEX JIT encoding code with the MCJIT version. Fix a bug in the MCJIT code where CurOp was being incremented even if the operand it was pointing at wasn't used. Maybe only matters if there are any EVEX_K instructions that aren't VEX_4V. llvm-svn: 188868
-
Nadav Rotem authored
In LLVM FMA3 operands are dst, src1, src2, src3, however dst is not encoded as it is always src1. This was causing the encoding of the operands to be off by one. Patch by Chris Bieneman. llvm-svn: 188866
-
Craig Topper authored
Rename mattr names for AVX-512 to from avx-512 -> avx512f, avx-512-pfi -> av512pf, avx-512-cdi -> avx512cd, avx-512-eri->avx512er. This matches better with official docs and what gcc patches appearto be using. I didn't touch the has* functions or the feature flag names to avoid change the td and lowering file while commits are still happening. llvm-svn: 188859
-
NAKAMURA Takumi authored
I suppose all "lli -use-mcjit i686-*" should require GOT, (and to fail.) llvm-svn: 188856
-
- Aug 20, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 188786
-
Craig Topper authored
llvm-svn: 188746
-
Craig Topper authored
llvm-svn: 188745
-
Craig Topper authored
Move AVX and non-AVX replication inside a couple multiclasses to avoid repeating each instruction for both individually. llvm-svn: 188743
-
- Aug 19, 2013
-
-
Elena Demikhovsky authored
ADD, SUB, MUL integer and FP types. OR, AND, XOR. Added embeded broadcast form for these instructions. llvm-svn: 188673
-
- Aug 18, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 188637
-
Craig Topper authored
llvm-svn: 188629
-
- Aug 16, 2013
-
-
Craig Topper authored
llvm-svn: 188534
-
- Aug 15, 2013
-
-
Bill Wendling authored
llvm-svn: 188469
-
Craig Topper authored
Revert r188449 as it turns out we're just missing the instructions that need the v16i32/v16f32 matching. llvm-svn: 188454
-
Craig Topper authored
Don't let isPermImmMask handle v16i32 since VPERMI doesn't match on that type. Remove 128-bit vector handling from isPermImmMask too, it's covered by isPSHUFDMask. llvm-svn: 188449
-
Craig Topper authored
llvm-svn: 188446
-
Craig Topper authored
llvm-svn: 188445
-
Craig Topper authored
Replace getValueType().getSimpleVT() with getSimpleValueType(). Also remove one weird cast from MVT->EVT just to call getSimpleVT(). llvm-svn: 188441
-
- Aug 14, 2013
-
-
Craig Topper authored
llvm-svn: 188366
-
Craig Topper authored
llvm-svn: 188365
-
Craig Topper authored
llvm-svn: 188364
-
Craig Topper authored
llvm-svn: 188363
-
Craig Topper authored
Replace EVT with MVT in isVectorShift. Keeps compiler from generating unneeded checks and handling for extended types. llvm-svn: 188362
-
Craig Topper authored
Replace EVT with MVT in many of the shuffle lowering functions. Keeps compiler from generating unneeded checks and handling for extended types. llvm-svn: 188361
-
- Aug 13, 2013
-
-
Evgeniy Stepanov authored
../lib/Target/X86/X86ISelLowering.cpp:9715:7: error: unused variable 'OpVT' [-Werror,-Wunused-variable] EVT OpVT = Op0.getValueType(); ^ ../lib/Target/X86/X86ISelLowering.cpp:9763:14: error: unused variable 'NumElems' [-Werror,-Wunused-variable] unsigned NumElems = VT.getVectorNumElements(); llvm-svn: 188269
-
Elena Demikhovsky authored
Lowering for SETCC. llvm-svn: 188265
-
Kevin Enderby authored
undefined and produce an error message instead as this is a non-relocatable expression with X86 Mach-O. rdar://8920876 llvm-svn: 188218
-
- Aug 11, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 188148
-
Elena Demikhovsky authored
Added a test for shuffles using VPERM. llvm-svn: 188147
-
- Aug 09, 2013
-
-
Benjamin Kramer authored
Use it to avoid repeating ourselves too often. Also store MVT::SimpleValueType in the TTI tables so they can be statically initialized, MVT's constructors create bloated initialization code otherwise. llvm-svn: 188095
-
Michael J. Spencer authored
* ELFTypes.h contains template magic for defining types based on endianess, size, and alignment. * ELFFile.h defines the ELFFile class which provides low level ELF specific access. * ELFObjectFile.h contains ELFObjectFile which uses ELFFile to implement the ObjectFile interface. llvm-svn: 188022
-
- Aug 08, 2013
-
-
Jakub Staszak authored
llvm-svn: 187986
-
Jakub Staszak authored
llvm-svn: 187984
-
- Aug 07, 2013
-
-
Elena Demikhovsky authored
with lowering logic and a test. llvm-svn: 187884
-
Craig Topper authored
llvm-svn: 187870
-
- Aug 06, 2013
-
-
Tim Northover authored
This change came about primarily because of two issues in the existing code. Niether of: define i64 @test1(i64 %val) { %in = trunc i64 %val to i32 tail call i32 @ret32(i32 returned %in) ret i64 %val } define i64 @test2(i64 %val) { tail call i32 @ret32(i32 returned undef) ret i32 42 } should be tail calls, and the function sameNoopInput is responsible. The main problem is that it is completely symmetric in the "tail call" and "ret" value, but in reality different things are allowed on each side. For these cases: 1. Any truncation should lead to a larger value being generated by "tail call" than needed by "ret". 2. Undef should only be allowed as a source for ret, not as a result of the call. Along the way I noticed that a mismatch between what this function treats as a valid truncation and what the backends see can lead to invalid calls as well (see x86-32 test case). This patch refactors the code so that instead of being based primarily on values which it recurses into when necessary, it starts by inspecting the type and considers each fundamental slot that the backend will see in turn. For example, given a pathological function that returned {{}, {{}, i32, {}}, i32} we would consider each "real" i32 in turn, and ask if it passes through unchanged. This is much closer to what the backend sees as a result of ComputeValueVTs. Aside from the bug fixes, this eliminates the recursion that's going on and, I believe, makes the bulk of the code significantly easier to understand. The trade-off is the nasty iterators needed to find the real types inside a returned value. llvm-svn: 187787
-