xref: /llvm-project/llvm/test/Transforms/GlobalOpt/pr61674.ll (revision deab451e7a7f2dff42097049274637052c87eabd)
184717a78SNikita Popov; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
284717a78SNikita Popov; RUN: opt -S -passes=globalopt < %s | FileCheck %s
384717a78SNikita Popov
484717a78SNikita Popov; Test handling of dead constant expressions in CleanupPointerRootUsers().
584717a78SNikita Popov
684717a78SNikita Popov@g = internal global [2 x [1 x [6 x ptr]]] zeroinitializer
784717a78SNikita Popov
884717a78SNikita Popovdefine void @test() {
984717a78SNikita Popov; CHECK-LABEL: define void @test() local_unnamed_addr {
1084717a78SNikita Popov; CHECK-NEXT:    ret void
1184717a78SNikita Popov;
1284717a78SNikita Popov  store ptr null, ptr getelementptr inbounds ([2 x [1 x [6 x ptr]]], ptr @g, i32 0, i32 1), align 1
1384717a78SNikita Popov  ret void
1484717a78SNikita Popov
1584717a78SNikita Popovdead:
16*deab451eSNikita Popov  %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)
1784717a78SNikita Popov  ret void
1884717a78SNikita Popov}
1984717a78SNikita Popov
2084717a78SNikita Popov; uselistorder directives
2184717a78SNikita Popovuselistorder ptr getelementptr inbounds ([2 x [1 x [6 x ptr]]], ptr @g, i32 0, i32 1), { 1, 2, 0 }
22