diff --git a/test/Transforms/ArgumentPromotion/aggregate-promote.ll b/test/Transforms/ArgumentPromotion/aggregate-promote.ll new file mode 100644 index 00000000000..d6041f644fe --- /dev/null +++ b/test/Transforms/ArgumentPromotion/aggregate-promote.ll @@ -0,0 +1,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 +}