xref: /llvm-project/llvm/test/Transforms/GlobalOpt/pr61674.ll (revision deab451e7a7f2dff42097049274637052c87eabd)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
2; RUN: opt -S -passes=globalopt < %s | FileCheck %s
3
4; Test handling of dead constant expressions in CleanupPointerRootUsers().
5
6@g = internal global [2 x [1 x [6 x ptr]]] zeroinitializer
7
8define void @test() {
9; CHECK-LABEL: define void @test() local_unnamed_addr {
10; CHECK-NEXT:    ret void
11;
12  store ptr null, ptr getelementptr inbounds ([2 x [1 x [6 x ptr]]], ptr @g, i32 0, i32 1), align 1
13  ret void
14
15dead:
16  %cmp = icmp ne ptr getelementptr inbounds ([2 x [1 x [6 x ptr]]], ptr @g, i32 0, i32 1), getelementptr inbounds ([6 x ptr], ptr getelementptr inbounds ([2 x [1 x [6 x ptr]]], ptr @g, i32 0, i32 1), i32 0, i32 5)
17  ret void
18}
19
20; uselistorder directives
21uselistorder ptr getelementptr inbounds ([2 x [1 x [6 x ptr]]], ptr @g, i32 0, i32 1), { 1, 2, 0 }
22