1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -passes=newgvn -S | FileCheck %s
3 target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
5 %struct.foo = type { i32, i32, [2 x [4 x [6 x [6 x i16]]]] }
7 @global = external global ptr
12 ; CHECK-NEXT: [[TMP:%.*]] = load ptr, ptr @global, align 8
13 ; CHECK-NEXT: br label [[BB2:%.*]]
15 ; CHECK-NEXT: br i1 undef, label [[BB2]], label [[BB7:%.*]]
17 ; CHECK-NEXT: br label [[BB10:%.*]]
19 ; CHECK-NEXT: br label [[BB10]]
22 %tmp = load ptr, ptr @global
23 %tmp1 = getelementptr %struct.foo, ptr %tmp
26 bb2: ; preds = %bb2, %bb
27 %tmp3 = phi ptr [ poison, %bb ], [ %tmp6, %bb2 ]
28 %tmp4 = getelementptr %struct.foo, ptr %tmp3, i64 0, i32 1
29 %tmp5 = load i32, ptr %tmp4
30 %tmp6 = load ptr, ptr @global
31 br i1 undef, label %bb2, label %bb7
34 %tmp8 = phi ptr [ %tmp6, %bb2 ]
35 %tmp9 = getelementptr %struct.foo, ptr %tmp8, i64 0, i32 1
38 bb10: ; preds = %bb10, %bb7
39 %tmp11 = load i32, ptr %tmp9