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