[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/regpressure.ll
Chris Lattner
lattner at cs.uiuc.edu
Mon Jan 17 15:16:16 PST 2005
Changes in directory llvm/test/Regression/CodeGen/X86:
regpressure.ll updated: 1.1 -> 1.2
---
Log message:
This is a carefully contrived testcase where the X86 ISel is emitting all loads
before other ops, causing it to spill like mad. This occurs in
164.gzip:flush_block.
---
Diffs of the changes: (+45 -0)
Index: llvm/test/Regression/CodeGen/X86/regpressure.ll
diff -u llvm/test/Regression/CodeGen/X86/regpressure.ll:1.1 llvm/test/Regression/CodeGen/X86/regpressure.ll:1.2
--- llvm/test/Regression/CodeGen/X86/regpressure.ll:1.1 Mon Jan 10 21:05:03 2005
+++ llvm/test/Regression/CodeGen/X86/regpressure.ll Mon Jan 17 17:16:01 2005
@@ -70,3 +70,48 @@
ret int %s9
}
+;; adds should be the same as muls.
+int %regpressure3(short* %P, bool %Cond, int* %Other) {
+ %A = load short* %P
+ %Bp = getelementptr short* %P, int 1
+ %B = load short* %Bp
+ %Cp = getelementptr short* %P, int 2
+ %C = load short* %Cp
+ %Dp = getelementptr short* %P, int 3
+ %D = load short* %Dp
+ %Ep = getelementptr short* %P, int 4
+ %E = load short* %Ep
+ %Fp = getelementptr short* %P, int 5
+ %F = load short* %Fp
+ %Gp = getelementptr short* %P, int 6
+ %G = load short* %Gp
+ %Hp = getelementptr short* %P, int 7
+ %H = load short* %Hp
+ %Ip = getelementptr short* %P, int 8
+ %I = load short* %Ip
+ %Jp = getelementptr short* %P, int 9
+ %J = load short* %Jp
+
+ ;; These casts prevent folding the loads into the adds.
+ %A = cast short %A to int
+ %B = cast short %B to int
+ %D = cast short %D to int
+ %C = cast short %C to int
+ %E = cast short %E to int
+ %F = cast short %F to int
+ %G = cast short %G to int
+ %H = cast short %H to int
+ %I = cast short %I to int
+ %J = cast short %J to int
+ %s1 = add int %A, %B
+ %s2 = add int %C, %s1
+ %s3 = add int %D, %s2
+ %s4 = add int %E, %s3
+ %s5 = add int %F, %s4
+ %s6 = add int %G, %s5
+ %s7 = add int %H, %s6
+ %s8 = add int %I, %s7
+ %s9 = add int %J, %s8
+ ret int %s9
+}
+
More information about the llvm-commits
mailing list