14796b4aeSNikita Popov; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 20676acb6SBjorn Pettersson; RUN: opt -S -passes=globalopt < %s | FileCheck %s 34796b4aeSNikita Popov 44796b4aeSNikita Popov; Make sure we don't recursively SRA if there are aggregate load/stores with 54796b4aeSNikita Popov; the same type as the global. 64796b4aeSNikita Popov 74796b4aeSNikita Popov@g = internal global { i32, i32 } undef 84796b4aeSNikita Popov 94796b4aeSNikita Popovdefine void @test() { 104796b4aeSNikita Popov; CHECK-LABEL: @test( 11*d586bd5cSNikita Popov; CHECK-NEXT: store { i32, i32 } zeroinitializer, ptr @g, align 4 12*d586bd5cSNikita Popov; CHECK-NEXT: store { i32, i32 } { i32 0, i32 1 }, ptr @g, align 4 134796b4aeSNikita Popov; CHECK-NEXT: ret void 144796b4aeSNikita Popov; 15*d586bd5cSNikita Popov store { i32, i32 } zeroinitializer, ptr @g 16*d586bd5cSNikita Popov store { i32, i32 } { i32 0, i32 1 }, ptr @g 174796b4aeSNikita Popov ret void 184796b4aeSNikita Popov} 194796b4aeSNikita Popov 204796b4aeSNikita Popovdefine { i32, i32 } @load() { 214796b4aeSNikita Popov; CHECK-LABEL: @load( 22*d586bd5cSNikita Popov; CHECK-NEXT: [[V:%.*]] = load { i32, i32 }, ptr @g, align 4 234796b4aeSNikita Popov; CHECK-NEXT: ret { i32, i32 } [[V]] 244796b4aeSNikita Popov; 25*d586bd5cSNikita Popov %v = load { i32, i32 }, ptr @g 264796b4aeSNikita Popov ret { i32, i32 } %v 274796b4aeSNikita Popov} 28