aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/ArgumentPromotion/aggregate-promote.ll
blob: d6041f644febb40995e8b7492d51db0cc3934142 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
; RUN: llvm-as < %s | opt -argpromotion -instcombine | not grep load

%QuadTy = type {int, int, int, int}

%G = constant %QuadTy {int 0, int 0, int 17, int 25 }

implementation

internal int %test(%QuadTy* %P) {
	%A = getelementptr %QuadTy* %P, long 0, ubyte 3
	%B = getelementptr %QuadTy* %P, long 0, ubyte 2
	%a = load int* %A
	%b = load int* %B
	%V = add int %a, %b
	ret int %V
}

int %caller() {
	%V = call int %test(%QuadTy* %G)
	ret int %V
}