// RUN: %target-sil-opt %s -diagnostic-constant-propagation -o /dev/null -verify
//
// REQUIRES: CPU=i386 || CPU=x86_64
//
// Tests for checking floating-point diagnostics produced by constant
// propagation phase on SIL inputs.
// This file tests to make sure that diagnostics are correctly emitted when
// AST information is not available.

sil_stage raw

import Builtin
import Swift

sil @testFPToUInt8ViaDouble : $@convention(thin) () -> UInt8 {
bb0:
%0 = float_literal $Builtin.FPIEEE80, 0x4007FF00000000000000 // 510
%1 = builtin "fptrunc_FPIEEE80_FPIEEE64"(%0 : $Builtin.FPIEEE80) : $Builtin.FPIEEE64
%2 = struct $Double (%1 : $Builtin.FPIEEE64)
%3 = struct_extract %2 : $Double, #Double._value
%4 = builtin "fptoui_FPIEEE64_Int8"(%3 : $Builtin.FPIEEE64) : $Builtin.Int8 // expected-error {{invalid conversion: '510' overflows 'Builtin.Int8'}}
%5 = struct $UInt8 (%4 : $Builtin.Int8)
return %5 : $UInt8
}

sil @testFPToInt64 : $@convention(thin) () -> Builtin.Int64 {
bb0:
%0 = float_literal $Builtin.FPIEEE80, 0x403DFFFFFFFFFFFFFFFE // 9223372036854775807
%1 = builtin "fptosi_FPIEEE80_Int64"(%0 : $Builtin.FPIEEE80) : $Builtin.Int64
%2 = float_literal $Builtin.FPIEEE80, 0xC03E8000000000000000 // -9223372036854775808
%3 = builtin "fptosi_FPIEEE80_Int64"(%2 : $Builtin.FPIEEE80) : $Builtin.Int64
%4 = float_literal $Builtin.FPIEEE80, 0x403E8000000000000000 // 9223372036854775808
%5 = builtin "fptosi_FPIEEE80_Int64"(%4 : $Builtin.FPIEEE80) : $Builtin.Int64 // expected-error {{invalid conversion: '9223372036854775808' overflows 'Builtin.Int64'}}
return %1 : $Builtin.Int64
}

sil @testFPToUInt64 : $@convention(thin) () -> Builtin.Int64 {
bb0:
%0 = float_literal $Builtin.FPIEEE80, 0x403EFFFFFFFFFFFFFFFF // 18446744073709551615
%1 = builtin "fptoui_FPIEEE80_Int64"(%0 : $Builtin.FPIEEE80) : $Builtin.Int64
%2 = float_literal $Builtin.FPIEEE80, 0x403F8000000000000000 // 18446744073709551616
%3 = builtin "fptoui_FPIEEE80_Int64"(%2 : $Builtin.FPIEEE80) : $Builtin.Int64 // expected-error {{invalid conversion: '18446744073709551616' overflows 'Builtin.Int64'}}
%4 = float_literal $Builtin.FPIEEE80, 0xC03EFFFFFFFFFFFFFFFF // -18446744073709551615
%5 = builtin "fptoui_FPIEEE80_Int64"(%4 : $Builtin.FPIEEE80) : $Builtin.Int64 // expected-error {{negative literal '-18446744073709551615' cannot be converted to unsigned 'Builtin.Int64'}}
return %1 : $Builtin.Int64
}

sil @testFPToInt64ViaDouble : $@convention(thin) () -> Builtin.Int64 {
bb0:
// A case where implicit conversion of the float literal to 'Double'
// results in an overflow during conversion to 'Int64''
%0 = float_literal $Builtin.FPIEEE80, 0x403DFFFFFFFFFFFFFFFE // 9223372036854775807
%1 = builtin "fptrunc_FPIEEE80_FPIEEE64"(%0 : $Builtin.FPIEEE80) : $Builtin.FPIEEE64
%2 = struct $Double (%1 : $Builtin.FPIEEE64)
%3 = struct_extract %2 : $Double, #Double._value
%4 = builtin "fptosi_FPIEEE64_Int64"(%3 : $Builtin.FPIEEE64) : $Builtin.Int64 // expected-error {{invalid conversion: '9.2233720368547758E+18' overflows 'Builtin.Int64'}}
// A similar case for 'UInt64'.
%5 = float_literal $Builtin.FPIEEE80, 0x403EFFFFFFFFFFFFFFFF // 18446744073709551615
%6 = builtin "fptrunc_FPIEEE80_FPIEEE64"(%5 : $Builtin.FPIEEE80) : $Builtin.FPIEEE64
%7 = struct $Double (%6 : $Builtin.FPIEEE64)
%8 = struct_extract %7 : $Double, #Double._value
%9 = builtin "fptoui_FPIEEE64_Int64"(%8 : $Builtin.FPIEEE64) : $Builtin.Int64 // expected-error {{invalid conversion: '1.8446744073709552E+19' overflows 'Builtin.Int64'}}
// A case where implicit conversion of the float literal to 'Double'
// elides an overflow that one would expect during conversion to 'Int64'.
%10 = float_literal $Builtin.FPIEEE80,  0xC03E8000000000000001 // -9223372036854775809
%11 = builtin "fptrunc_FPIEEE80_FPIEEE64"(%10 : $Builtin.FPIEEE80) : $Builtin.FPIEEE64
%12 = struct $Double (%11 : $Builtin.FPIEEE64)
%13 = struct_extract %12 : $Double, #Double._value
%14 = builtin "fptosi_FPIEEE64_Int64"(%13 : $Builtin.FPIEEE64) : $Builtin.Int64
return %14 : $Builtin.Int64
}
