- Oct 30, 2012
-
-
Michael Liao authored
llvm-svn: 167027
-
Quentin Colombet authored
llvm-svn: 167020
-
Duncan Sands authored
with different sizes. llvm-svn: 167018
-
Hans Wennborg authored
function attributes, etc. llvm-svn: 167016
-
Adhemerval Zanella authored
This patch adds more support for vector type comparisons using altivec. It adds correct support for v16i8, v8i16, v4i32, and v4f32 vector types for comparison operators ==, !=, >, >=, <, and <=. llvm-svn: 167015
-
Duncan Sands authored
Simplify the implementation of the corresponding integer and float functions and move them inline while there. llvm-svn: 167014
-
Ulrich Weigand authored
This fixes Clang :: CodeGen/complex-builtints.c on PowerPC. llvm-svn: 167013
-
Hans Wennborg authored
When the switch-to-lookup tables transform landed in SimplifyCFG, it was pointed out that this could be inappropriate for some targets. Since there was no way at the time for the pass to know anything about the target, an awkward reverse-transform was added in CodeGenPrepare that turned lookup tables back into switches for some targets. This patch uses the new TargetTransformInfo to determine if a switch should be transformed, and removes CodeGenPrepare::ConvertLoadToSwitch. llvm-svn: 167011
-
Hal Finkel authored
getCastInstrCost had an assert prohibiting scalar to vector casts. Such casts, however, are allowed. This should make the vectorizer buildbot happier. llvm-svn: 166998
-
Sid Manning authored
* Add Hexagon specific section indexes for small data - Reviewed by Michael Spencer llvm-svn: 166997
-
Jim Grosbach authored
When the operand is a plain immediate rather than a label, print it as [pc, #imm] like we do for the Thumb2 wide encoding variant. rdar://12154503 llvm-svn: 166991
-
Reed Kotler authored
We will make them delay slot forms if there is something that can be placed in the delay slot during a separate pass. Mips16 extended instructions cannot be placed in delay slots. llvm-svn: 166990
-
Nadav Rotem authored
LoopVectorizer: change debug prints: Print the module identifier when deciding to vectorize. When deciding not to vectorize do not print the called function name because it can be null. llvm-svn: 166989
-
Jakub Staszak authored
to test it with chapni's fix (-mattr=+avx). llvm-svn: 166985
-
Kevin Enderby authored
is 24 bits not 20 and the decoding needed to correctly handle converting the J1 and J2 bits to their I1 and I2 values to reconstruct the displacement. llvm-svn: 166982
-
Jakub Staszak authored
llvm-svn: 166979
-
- Oct 29, 2012
-
-
NAKAMURA Takumi authored
llvm-svn: 166974
-
Jakub Staszak authored
llvm-svn: 166973
-
Jakub Staszak authored
llvm-svn: 166972
-
Jakub Staszak authored
%0 = load <8 x i16>* %dest %1 = shufflevector <8 x i16> %0, <8 x i16> %in, <8 x i32> < i32 0, i32 1, i32 2, i32 3, i32 13, i32 undef, i32 14, i32 14> store <8 x i16> %1, <8 x i16>* %dest We get: vmovlpd (%eax), %xmm0, %xmm0 instead of: vmovaps (%eax), %xmm1 vmovsd %xmm1, %xmm0, %xmm0 No extra test-case is added. I just fixed the existing one (also it uses FileCheck now). llvm-svn: 166971
-
Nadav Rotem authored
llvm-svn: 166970
-
Jakub Staszak authored
llvm-svn: 166969
-
Bill Schmidt authored
ELF ABI. A varargs parameter consisting of a single-precision floating-point value, or of a single-element aggregate containing a single-precision floating-point value, must be passed in the low-order (rightmost) four bytes of the doubleword stack slot reserved for that parameter. If there are GPR protocol registers remaining, the parameter must also be mirrored in the low-order four bytes of the reserved GPR. Prior to this patch, such parameters were being passed in the high-order four bytes of the stack slot and the mirrored GPR. The patch adds a new test case to verify the correct code generation. llvm-svn: 166968
-
Simon Atanasyan authored
as valid triples denote Mips target. llvm-svn: 166961
-
Reed Kotler authored
llvm-svn: 166960
-
Ulrich Weigand authored
checks to avoid performing compile-time arithmetic on PPCDoubleDouble. Now that APFloat supports arithmetic on PPCDoubleDouble, those checks are no longer needed, and we can treat the type like any other. llvm-svn: 166958
-
Ulrich Weigand authored
llvm-svn: 166954
-
Chad Rosier authored
llvm-svn: 166953
-
Ulrich Weigand authored
llvm-svn: 166952
-
Ulrich Weigand authored
treating it as if it were an IEEE floating-point type with 106-bit mantissa. This makes compile-time arithmetic on "long double" for PowerPC in clang (in particular parsing of floating point constants) work, and fixes all "long double" related failures in the test suite. llvm-svn: 166951
-
Chad Rosier authored
equivalent to [expr1 + expr2]. See test cases for more examples. rdar://12470392 llvm-svn: 166949
-
Nadav Rotem authored
llvm-svn: 166948
-
Michael Liao authored
- Add missing pattern on X86ISD::VZEXT from VR256 to VR256 when AVX2 is enabled. llvm-svn: 166947
-
Joerg Sonnenberger authored
llvm-svn: 166945
-
Jakob Stoklund Olesen authored
Partial copies can show up even when CoalescerPair.isPartial() returns false. For example: %vreg24:dsub_0<def> = COPY %vreg31:dsub_0; QPR:%vreg24,%vreg31 Such a partial-partial copy is not good enough for the transformation adjustCopiesBackFrom() needs to do. llvm-svn: 166944
-
Ulrich Weigand authored
This fixes PR12757. llvm-svn: 166943
-
Duncan Sands authored
wrapper returns a vector of integers when passed a vector of pointers) by having getIntPtrType itself return a vector of integers in this case. Outside of this wrapper, I didn't find anywhere in the codebase that was relying on the old behaviour for vectors of pointers, so give this a whirl through the buildbots. llvm-svn: 166939
-
Bob Wilson authored
We may need to change the way profile counter values are stored, but saturation is the wrong thing to do. Just remove it for now. Patch by Alastair Murray! llvm-svn: 166938
-
Nadav Rotem authored
Change the PassManagerBuilder (used by -O3) loop vectorizer flag from -vectorize to -vectorize-loops because we dont want to share the same flag as the bb-vectorizer. llvm-svn: 166937
-
Hans Wennborg authored
llvm-svn: 166936
-