; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -instcombine < %s | FileCheck %s

define i1 @i32_cast_cmp_oeq_int_0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_n0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_n0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_n0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_n0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_one_int_0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_one_int_0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp one float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_one_int_n0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_one_int_n0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp one float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_one_int_0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_one_int_0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp one float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_one_int_n0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_one_int_n0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp one float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ueq_int_0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ueq_int_0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp ueq float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ueq_int_n0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ueq_int_n0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp ueq float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ueq_int_0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ueq_int_0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp ueq float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ueq_int_n0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ueq_int_n0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp ueq float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_une_int_0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_une_int_0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp une float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_une_int_n0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_une_int_n0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp une float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_une_int_0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_une_int_0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp une float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_une_int_n0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_une_int_n0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp une float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ogt_int_0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ogt_int_0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp ogt float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ogt_int_n0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ogt_int_n0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp ogt float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ogt_int_0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ogt_int_0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp ogt float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ogt_int_n0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ogt_int_n0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp ogt float %f, -0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ole_int_0_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ole_int_0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp ole float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ole_int_0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ole_int_0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 [[I:%.*]], 1
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp ole float %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_olt_int_0_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_olt_int_0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp olt float %f, 0.0
  ret i1 %cmp
}

define i1 @i64_cast_cmp_oeq_int_0_uitofp(i64 %i) {
; CHECK-LABEL: @i64_cast_cmp_oeq_int_0_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i64 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i64 %i to float
  %cmp = fcmp oeq float %f, 0.0
  ret i1 %cmp
}

define i1 @i64_cast_cmp_oeq_int_0_sitofp(i64 %i) {
; CHECK-LABEL: @i64_cast_cmp_oeq_int_0_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i64 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i64 %i to float
  %cmp = fcmp oeq float %f, 0.0
  ret i1 %cmp
}

define i1 @i64_cast_cmp_oeq_int_0_uitofp_half(i64 %i) {
; CHECK-LABEL: @i64_cast_cmp_oeq_int_0_uitofp_half(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i64 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i64 %i to half
  %cmp = fcmp oeq half %f, 0.0
  ret i1 %cmp
}

define i1 @i64_cast_cmp_oeq_int_0_sitofp_half(i64 %i) {
; CHECK-LABEL: @i64_cast_cmp_oeq_int_0_sitofp_half(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i64 [[I:%.*]], 0
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i64 %i to half
  %cmp = fcmp oeq half %f, 0.0
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_0_uitofp_ppcf128(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_0_uitofp_ppcf128(
; CHECK-NEXT:    [[F:%.*]] = uitofp i32 [[I:%.*]] to ppc_fp128
; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq ppc_fp128 [[F]], 0xM00000000000000000000000000000000
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to ppc_fp128
  %cmp = fcmp oeq ppc_fp128 %f, 0xM00000000000000000000000000000000
  ret i1 %cmp
}

; Since 0xFFFFFF fits in a float, and one less and
; one more than it also fits without rounding, the
; test can be optimized to an integer compare.

define i1 @i32_cast_cmp_oeq_int_i24max_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i24max_uitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 16777215
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x416FFFFFE0000000
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_i24max_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i24max_sitofp(
; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 16777215
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x416FFFFFE0000000
  ret i1 %cmp
}

; Though 0x1000000 fits in a float, one more than it
; would round to it too, hence a single integer comparison
; does not suffice.


define i1 @i32_cast_cmp_oeq_int_i24maxp1_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i24maxp1_uitofp(
; CHECK-NEXT:    [[F:%.*]] = uitofp i32 [[I:%.*]] to float
; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq float [[F]], 0x4170000000000000
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x4170000000000000
  ret i1 %cmp
}


define i1 @i32_cast_cmp_oeq_int_i24maxp1_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i24maxp1_sitofp(
; CHECK-NEXT:    [[F:%.*]] = sitofp i32 [[I:%.*]] to float
; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq float [[F]], 0x4170000000000000
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x4170000000000000
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_i32umax_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i32umax_uitofp(
; CHECK-NEXT:    [[F:%.*]] = uitofp i32 [[I:%.*]] to float
; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq float [[F]], 0x41F0000000000000
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x41F0000000000000
  ret i1 %cmp
}

; 32-bit unsigned integer cannot possibly round up to 1<<33
define i1 @i32_cast_cmp_oeq_int_big_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_big_uitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x4200000000000000
  ret i1 %cmp
}

; 32-bit signed integer cannot possibly round up to 1<<32
define i1 @i32_cast_cmp_oeq_int_i32umax_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i32umax_sitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x41F0000000000000
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_i32imin_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i32imin_sitofp(
; CHECK-NEXT:    [[F:%.*]] = sitofp i32 [[I:%.*]] to float
; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq float [[F]], 0xC1E0000000000000
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0xC1E0000000000000
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_i32imax_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i32imax_uitofp(
; CHECK-NEXT:    [[F:%.*]] = uitofp i32 [[I:%.*]] to float
; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq float [[F]], 0x41E0000000000000
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x41E0000000000000
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_i32imax_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_i32imax_sitofp(
; CHECK-NEXT:    [[F:%.*]] = sitofp i32 [[I:%.*]] to float
; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq float [[F]], 0x41E0000000000000
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x41E0000000000000
  ret i1 %cmp
}

; 32-bit signed integer cannot possibly round to -1<<32
define i1 @i32_cast_cmp_oeq_int_negi32umax_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_negi32umax_sitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0xC1F0000000000000
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_half_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_half_uitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0.5
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_half_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_half_sitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0.5
  ret i1 %cmp
}

define i1 @i32_cast_cmp_one_half_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_one_half_uitofp(
; CHECK-NEXT:    ret i1 true
;
  %f = uitofp i32 %i to float
  %cmp = fcmp one float %f, 0.5
  ret i1 %cmp
}

define i1 @i32_cast_cmp_one_half_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_one_half_sitofp(
; CHECK-NEXT:    ret i1 true
;
  %f = sitofp i32 %i to float
  %cmp = fcmp one float %f, 0.5
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ueq_half_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ueq_half_uitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = uitofp i32 %i to float
  %cmp = fcmp ueq float %f, 0.5
  ret i1 %cmp
}

define i1 @i32_cast_cmp_ueq_half_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_ueq_half_sitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = sitofp i32 %i to float
  %cmp = fcmp ueq float %f, 0.5
  ret i1 %cmp
}

define i1 @i32_cast_cmp_une_half_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_une_half_uitofp(
; CHECK-NEXT:    ret i1 true
;
  %f = uitofp i32 %i to float
  %cmp = fcmp une float %f, 0.5
  ret i1 %cmp
}

define i1 @i32_cast_cmp_une_half_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_une_half_sitofp(
; CHECK-NEXT:    ret i1 true
;
  %f = sitofp i32 %i to float
  %cmp = fcmp une float %f, 0.5
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_inf_uitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_inf_uitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = uitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x7FF0000000000000
  ret i1 %cmp
}

define i1 @i32_cast_cmp_oeq_int_inf_sitofp(i32 %i) {
; CHECK-LABEL: @i32_cast_cmp_oeq_int_inf_sitofp(
; CHECK-NEXT:    ret i1 false
;
  %f = sitofp i32 %i to float
  %cmp = fcmp oeq float %f, 0x7FF0000000000000
  ret i1 %cmp
}

; An i128 could round to an IEEE single-precision infinity.
define i1 @i128_cast_cmp_oeq_int_inf_uitofp(i128 %i) {
; CHECK-LABEL: @i128_cast_cmp_oeq_int_inf_uitofp(
; CHECK-NEXT:    [[F:%.*]] = uitofp i128 [[I:%.*]] to float
; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq float [[F]], 0x7FF0000000000000
; CHECK-NEXT:    ret i1 [[CMP]]
;
  %f = uitofp i128 %i to float
  %cmp = fcmp oeq float %f, 0x7FF0000000000000
  ret i1 %cmp
}
