blob: acab66b8812004f8437d8de6d79fae9bfacf517b [file] [log] [blame]
; This test is lowered from C code that does some simple aritmetic
; with struct members.
; REQUIRES: allow_dump
; RUN: %p2i -i %s --args --verbose inst -threads=0 | FileCheck %s
define internal i32 @compute_important_function(i32 %v1, i32 %v2) {
entry:
%__2 = inttoptr i32 %v1 to i32*
%_v0 = load i32, i32* %__2, align 1
; CHECK: entry:
; CHECK-NEXT: %_v0 = load i32, i32* {{.*}}, align 1
%__4 = inttoptr i32 %v2 to i32*
%_v1 = load i32, i32* %__4, align 1
%gep = add i32 %v2, 12
%__7 = inttoptr i32 %gep to i32*
%_v2 = load i32, i32* %__7, align 1
%mul = mul i32 %_v2, %_v1
%gep6 = add i32 %v1, 4
%__11 = inttoptr i32 %gep6 to i32*
%_v3 = load i32, i32* %__11, align 1
%gep8 = add i32 %v2, 8
%__14 = inttoptr i32 %gep8 to i32*
%_v4 = load i32, i32* %__14, align 1
%gep10 = add i32 %v2, 4
%__17 = inttoptr i32 %gep10 to i32*
%_v5 = load i32, i32* %__17, align 1
%mul3 = mul i32 %_v5, %_v4
%gep12 = add i32 %v1, 8
%__21 = inttoptr i32 %gep12 to i32*
%_v6 = load i32, i32* %__21, align 1
%mul7 = mul i32 %_v6, %_v3
%mul9 = mul i32 %mul7, %_v6
%gep14 = add i32 %v1, 12
%__26 = inttoptr i32 %gep14 to i32*
%_v7 = load i32, i32* %__26, align 1
%mul11 = mul i32 %mul9, %_v7
%add4.neg = add i32 %mul, %_v0
%add = sub i32 %add4.neg, %_v3
%sub = sub i32 %add, %mul3
%sub12 = sub i32 %sub, %mul11
ret i32 %sub12
; CHECK: %sub12 = sub i32 %sub, %mul11
; CHECK-NEXT: ret i32 %sub12
}