1 ;; Both functions in this testcase should codegen to the same function, and
2 ;; neither of them should require spilling anything to the stack.
4 ; RUN: llvm-as < %s | llc -march=x86 -disable-pattern-isel=0 -stats 2>&1 | not grep 'Number of register spills'
6 ;; This can be compiled to use three registers if the loads are not
7 ;; folded into the multiplies, 2 registers otherwise.
8 int %regpressure1(int* %P) {
10 %Bp = getelementptr int* %P, int 1
13 %Cp = getelementptr int* %P, int 2
16 %Dp = getelementptr int* %P, int 3
19 %Ep = getelementptr int* %P, int 4
22 %Fp = getelementptr int* %P, int 5
25 %Gp = getelementptr int* %P, int 6
28 %Hp = getelementptr int* %P, int 7
31 %Ip = getelementptr int* %P, int 8
34 %Jp = getelementptr int* %P, int 9
40 ;; This testcase should produce identical code to the test above.
41 int %regpressure2(int* %P) {
43 %Bp = getelementptr int* %P, int 1
45 %Cp = getelementptr int* %P, int 2
47 %Dp = getelementptr int* %P, int 3
49 %Ep = getelementptr int* %P, int 4
51 %Fp = getelementptr int* %P, int 5
53 %Gp = getelementptr int* %P, int 6
55 %Hp = getelementptr int* %P, int 7
57 %Ip = getelementptr int* %P, int 8
59 %Jp = getelementptr int* %P, int 9