; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 ; RUN: opt < %s -passes=instsimplify -S | FileCheck %s @gv = global i64 zeroinitializer, align 16 define i1 @cmp_gv_alloca() { ; CHECK-LABEL: define i1 @cmp_gv_alloca() { ; CHECK-NEXT: ret i1 false ; %alloca = alloca i64, align 8 %cmp = icmp eq ptr %alloca, @gv ret i1 %cmp } @gv_externally_init = externally_initialized global i64 zeroinitializer, align 16 define i1 @cmp_gv_alloca_extern_init() { ; CHECK-LABEL: define i1 @cmp_gv_alloca_extern_init() { ; CHECK-NEXT: ret i1 false ; %alloca = alloca i64, align 8 %cmp = icmp eq ptr %alloca, @gv_externally_init ret i1 %cmp } @const_gv = protected addrspace(4) externally_initialized global [4096 x i64] zeroinitializer, align 16 define i1 @cmp_gv_alloca_cast() { ; CHECK-LABEL: define i1 @cmp_gv_alloca_cast() { ; CHECK-NEXT: ret i1 false ; %alloca = alloca i64, align 8, addrspace(5) %cast.alloca = addrspacecast ptr addrspace(5) %alloca to ptr %cmp = icmp eq ptr %cast.alloca, addrspacecast (ptr addrspace(4) @const_gv to ptr) ret i1 %cmp } @gv_weak = weak global i64 zeroinitializer, align 16 define i1 @cmp_gv_weak_alloca() { ; CHECK-LABEL: define i1 @cmp_gv_weak_alloca() { ; CHECK-NEXT: ret i1 false ; %alloca = alloca i64, align 8 %cmp = icmp eq ptr %alloca, @gv_weak ret i1 %cmp } %opaque = type opaque @gv_unsized = weak global %opaque zeroinitializer, align 16 define i1 @cmp_gv_unsized_alloca() { ; CHECK-LABEL: define i1 @cmp_gv_unsized_alloca() { ; CHECK-NEXT: [[ALLOCA:%.*]] = alloca i64, align 8 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq ptr [[ALLOCA]], @gv_unsized ; CHECK-NEXT: ret i1 [[CMP]] ; %alloca = alloca i64, align 8 %cmp = icmp eq ptr %alloca, @gv_unsized ret i1 %cmp }