1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -S -passes=globalopt < %s | FileCheck %s 3 4; Make sure we don't recursively SRA if there are aggregate load/stores with 5; the same type as the global. 6 7@g = internal global { i32, i32 } undef 8 9define void @test() { 10; CHECK-LABEL: @test( 11; CHECK-NEXT: store { i32, i32 } zeroinitializer, ptr @g, align 4 12; CHECK-NEXT: store { i32, i32 } { i32 0, i32 1 }, ptr @g, align 4 13; CHECK-NEXT: ret void 14; 15 store { i32, i32 } zeroinitializer, ptr @g 16 store { i32, i32 } { i32 0, i32 1 }, ptr @g 17 ret void 18} 19 20define { i32, i32 } @load() { 21; CHECK-LABEL: @load( 22; CHECK-NEXT: [[V:%.*]] = load { i32, i32 }, ptr @g, align 4 23; CHECK-NEXT: ret { i32, i32 } [[V]] 24; 25 %v = load { i32, i32 }, ptr @g 26 ret { i32, i32 } %v 27} 28