; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -passes=instcombine -S | FileCheck %s define @sge( %x) { ; CHECK-LABEL: @sge( ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt [[X:%.*]], shufflevector ( insertelement ( poison, i8 -1, i64 0), poison, zeroinitializer) ; CHECK-NEXT: ret [[CMP]] ; %cmp = icmp sge %x, zeroinitializer ret %cmp } define @gep_scalevector1(ptr %X) nounwind { ; CHECK-LABEL: @gep_scalevector1( ; CHECK-NEXT: [[DOTSPLATINSERT:%.*]] = insertelement poison, ptr [[X:%.*]], i64 0 ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq [[DOTSPLATINSERT]], zeroinitializer ; CHECK-NEXT: [[C:%.*]] = shufflevector [[TMP1]], poison, zeroinitializer ; CHECK-NEXT: ret [[C]] ; %A = getelementptr inbounds i32, ptr %X, zeroinitializer %C = icmp eq %A, zeroinitializer ret %C } define @signbit_bitcast_fpext_scalevec( %x) { ; CHECK-LABEL: @signbit_bitcast_fpext_scalevec( ; CHECK-NEXT: [[TMP1:%.*]] = bitcast [[X:%.*]] to ; CHECK-NEXT: [[R:%.*]] = icmp slt [[TMP1]], zeroinitializer ; CHECK-NEXT: ret [[R]] ; %f = fpext %x to %b = bitcast %f to %r = icmp slt %b, zeroinitializer ret %r }