- Dec 15, 2005
-
-
Chris Lattner authored
if after legalize. This fixes IA64 failures. llvm-svn: 24725
-
Evan Cheng authored
leaaddr. llvm-svn: 24724
-
Evan Cheng authored
llvm-svn: 24723
-
Evan Cheng authored
llvm-svn: 24722
-
Evan Cheng authored
llvm-svn: 24721
-
- Dec 14, 2005
-
-
Nate Begeman authored
llvm-svn: 24720
-
Nate Begeman authored
from the DAGToDAG cpp file. This adds pattern support for vector and scalar fma, which passes test/Regression/CodeGen/PowerPC/fma.ll, and does the right thing in the presence of -disable-excess-fp-precision. Allows us to match: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = mul <4 x float> %tmp1, %tmp1 %tmp3 = add <4 x float> %tmp2, %tmp1 store <4 x float> %tmp3, <4 x float> *%a ret void } As: _foo: li r2, 0 lvx v0, r2, r3 vmaddfp v0, v0, v0, v0 stvx v0, r2, r3 blr Or, with llc -disable-excess-fp-precision, _foo: li r2, 0 lvx v0, r2, r3 vxor v1, v1, v1 vmaddfp v1, v0, v0, v1 vaddfp v0, v1, v0 stvx v0, r2, r3 blr llvm-svn: 24719
-
Nate Begeman authored
are matching llvm-svn: 24718
-
Evan Cheng authored
llvm-svn: 24717
-
Evan Cheng authored
llvm-svn: 24716
-
Evan Cheng authored
llvm-svn: 24715
-
Chris Lattner authored
llvm-svn: 24714
-
Evan Cheng authored
OtherVT, it cannot be compare to type of 1st operand which is an integer type. llvm-svn: 24713
-
Chris Lattner authored
load. This reduces number of worklist iterations and avoid missing optimizations depending on folding of things into sext_inreg nodes (which aren't supported by all targets). Tested by Regression/CodeGen/X86/extend.ll:test2 llvm-svn: 24712
-
Chris Lattner authored
llvm-svn: 24711
-
Reid Spencer authored
in last patch. llvm-svn: 24710
-
Chris Lattner authored
Allow (zext (truncate)) to apply after legalize if the target supports AND (which all do). This compiles short %foo() { %tmp.0 = load ubyte* %X ; <ubyte> [#uses=1] %tmp.3 = cast ubyte %tmp.0 to short ; <short> [#uses=1] ret short %tmp.3 } to: _foo: movzbl _X, %eax ret instead of: _foo: movzbl _X, %eax movzbl %al, %eax ret thanks to Evan for pointing this out. llvm-svn: 24709
-
Chris Lattner authored
behavior in 126.gcc on big-endian systems. llvm-svn: 24708
-
Chris Lattner authored
llvm-svn: 24707
-
Chris Lattner authored
llvm-svn: 24706
-
Evan Cheng authored
llvm-svn: 24705
-
Evan Cheng authored
llvm-svn: 24704
-
Evan Cheng authored
llvm-svn: 24703
-
Evan Cheng authored
llvm-svn: 24702
-
Nate Begeman authored
void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = mul <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } Is selected to: _foo: li r2, 0 lvx v0, r2, r3 vxor v1, v1, v1 vmaddfp v0, v0, v0, v1 stvx v0, r2, r3 blr llvm-svn: 24701
-
- Dec 13, 2005
-
-
Nate Begeman authored
llvm-svn: 24700
-
Reid Spencer authored
the module being constructed. This is used to correctly name the module. Previously the name of the linker tool was used which produces confusing output when the module identifier is used in an error message. llvm-svn: 24699
-
Reid Spencer authored
a) use better local variable names (OldMT -> OldFT) where "M" is used to mean "Function" (perhaps it was previously "Method"?) b) print out the module identifier in a warning message so that it is possible to track down in which module the error occurred. llvm-svn: 24698
-
Chris Lattner authored
llvm-svn: 24697
-
Evan Cheng authored
llvm-svn: 24696
-
Chris Lattner authored
llvm-svn: 24695
-
Chris Lattner authored
for emitting the ctor/dtor list for common targets. llvm-svn: 24694
-
Chris Lattner authored
llvm-svn: 24693
-
Chris Lattner authored
llvm-svn: 24692
-
Nate Begeman authored
ConstantVec legalizing code, which would return constantpool nodes that were not of the target's pointer type. llvm-svn: 24691
-
Evan Cheng authored
llvm-svn: 24690
-
Evan Cheng authored
llvm-svn: 24689
-
Evan Cheng authored
A few helper fragments for loads. e.g. (i8 (load addr:$src)) -> (loadi8 addr:$src). Only to improve readibility. llvm-svn: 24688
-
Evan Cheng authored
llvm-svn: 24687
-
Evan Cheng authored
llvm-svn: 24686
-