brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 4dbd9e6 Raw
41 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals2; RUN: opt -S -passes=globalopt < %s | FileCheck %s3 4; Global SRA should not be performed here (or at least not naively), as5; offset 4 is accessed as both i32 and i64.6 7%T = type { i32, i32, i32, i32 }8@g = internal global %T zeroinitializer9 10;.11; CHECK: @g = internal unnamed_addr global %T zeroinitializer12;.13define void @test1() {14; CHECK-LABEL: @test1(15; CHECK-NEXT:    store i32 1, ptr getelementptr ([[T:%.*]], ptr @g, i64 0, i32 1), align 416; CHECK-NEXT:    store i32 2, ptr getelementptr ([[T]], ptr @g, i64 0, i32 2), align 417; CHECK-NEXT:    ret void18;19  store i32 1, ptr getelementptr (%T, ptr @g, i64 0, i32 1)20  store i32 2, ptr getelementptr (%T, ptr @g, i64 0, i32 2)21  ret void22}23 24define i32 @load1() {25; CHECK-LABEL: @load1(26; CHECK-NEXT:    [[V:%.*]] = load i32, ptr getelementptr ([[T:%.*]], ptr @g, i64 0, i32 1), align 427; CHECK-NEXT:    ret i32 [[V]]28;29  %v = load i32, ptr getelementptr (%T, ptr @g, i64 0, i32 1)30  ret i32 %v31}32 33define i64 @load2() {34; CHECK-LABEL: @load2(35; CHECK-NEXT:    [[V:%.*]] = load i64, ptr getelementptr ([[T:%.*]], ptr @g, i64 0, i32 2), align 436; CHECK-NEXT:    ret i64 [[V]]37;38  %v = load i64, ptr getelementptr (%T, ptr @g, i64 0, i32 2)39  ret i64 %v40}41