diff --git a/spec/std/crystal/compiler_rt/divmod128_spec.cr b/spec/std/crystal/compiler_rt/divmod128_spec.cr index 88746f873138..73a4221d7f55 100644 --- a/spec/std/crystal/compiler_rt/divmod128_spec.cr +++ b/spec/std/crystal/compiler_rt/divmod128_spec.cr @@ -41,10 +41,10 @@ describe "__divti3" do test__divti3(2, -1, -2) test__divti3(-2, 1, -2) test__divti3(-2, -1, 2) - test__divti3(make_ti(-9223372036854775808, 0x0), 1, make_ti(-9223372036854775808, 0x0)) - test__divti3(make_ti(-9223372036854775808, 0x0), -1, make_ti(-9223372036854775808, 0x0)) - test__divti3(make_ti(-9223372036854775808, 0x0), -2, make_ti(0x4000000000000000, 0x0)) - test__divti3(make_ti(-9223372036854775808, 0x0), 2, make_ti(-0x4000000000000000, 0x0)) + test__divti3(0x80000000000000000000000000000000_u128.to_i128!, 1, 0x80000000000000000000000000000000_u128.to_i128!) + test__divti3(0x80000000000000000000000000000000_u128.to_i128!, -1, 0x80000000000000000000000000000000_u128.to_i128!) + test__divti3(0x80000000000000000000000000000000_u128.to_i128!, -2, 0x40000000000000000000000000000000_i128) + test__divti3(0x80000000000000000000000000000000_u128.to_i128!, 2, 0xC0000000000000000000000000000000_u128.to_i128!) end describe "__modti3" do @@ -56,28 +56,28 @@ describe "__modti3" do test__modti3(-5, 3, -2) test__modti3(-5, -3, -2) - test__modti3(make_ti(-9223372036854775808, 0x0), 1, 0) - test__modti3(make_ti(-9223372036854775808, 0x0), -1, 0) - test__modti3(make_ti(-9223372036854775808, 0x0), 2, 0) - test__modti3(make_ti(-9223372036854775808, 0x0), -2, 0) - test__modti3(make_ti(-9223372036854775808, 0x0), 3, -2) - test__modti3(make_ti(-9223372036854775808, 0x0), -3, -2) + test__modti3(0x80000000000000000000000000000000_u128.to_i128!, 1, 0) + test__modti3(0x80000000000000000000000000000000_u128.to_i128!, -1, 0) + test__modti3(0x80000000000000000000000000000000_u128.to_i128!, 2, 0) + test__modti3(0x80000000000000000000000000000000_u128.to_i128!, -2, 0) + test__modti3(0x80000000000000000000000000000000_u128.to_i128!, 3, -2) + test__modti3(0x80000000000000000000000000000000_u128.to_i128!, -3, -2) end describe "__udivti3" do test__udivti3(0, 1, 0) test__udivti3(2, 1, 2) - test__udivti3(make_tu(0x0, 0x8000000000000000), 1, make_tu(0x0, 0x8000000000000000)) - test__udivti3(make_tu(0x0, 0x8000000000000000), 2, make_tu(0x0, 0x4000000000000000)) - test__udivti3(make_tu(0xffffffffffffffff, 0xffffffffffffffff), 2, make_tu(0x7fffffffffffffff, 0xffffffffffffffff)) + test__udivti3(0x08000000000000000_u128, 1, 0x08000000000000000_u128) + test__udivti3(0x08000000000000000_u128, 2, 0x04000000000000000_u128) + test__udivti3(0xffffffffffffffffffffffffffffffff_u128, 2, 0x7fffffffffffffffffffffffffffffff_u128) end describe "__umodti3" do test__umodti3(0, 1, 0) test__umodti3(2, 1, 0) - test__umodti3(make_tu(0x0, 0x8000000000000000), 1, 0) - test__umodti3(make_tu(0x0, 0x8000000000000000), 2, 0) - test__umodti3(make_tu(0xffffffffffffffff, 0xffffffffffffffff), 2, 1) + test__umodti3(0x08000000000000000_u128, 1, 0) + test__umodti3(0x08000000000000000_u128, 2, 0) + test__umodti3(0xffffffffffffffffffffffffffffffff_u128, 2, 1) end diff --git a/spec/std/crystal/compiler_rt/fixint_spec.cr b/spec/std/crystal/compiler_rt/fixint_spec.cr index 09c9e3c922c8..997f450e8aaf 100644 --- a/spec/std/crystal/compiler_rt/fixint_spec.cr +++ b/spec/std/crystal/compiler_rt/fixint_spec.cr @@ -51,20 +51,20 @@ describe "__fixdfti" do test__fixdfti(hexfloat("0x1.FFFFFEp+62"), 0x7FFFFF8000000000_u64) test__fixdfti(hexfloat("0x1.FFFFFCp+62"), 0x7FFFFF0000000000_u64) - test__fixdfti(hexfloat("-0x1.FFFFFEp+62"), make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000008000000000_u64)) - test__fixdfti(hexfloat("-0x1.FFFFFCp+62"), make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000010000000000_u64)) + test__fixdfti(hexfloat("-0x1.FFFFFEp+62"), 0xFFFFFFFFFFFFFFFF8000008000000000_u128.to_i128!) + test__fixdfti(hexfloat("-0x1.FFFFFCp+62"), 0xFFFFFFFFFFFFFFFF8000010000000000_u128.to_i128!) test__fixdfti(hexfloat("0x1.FFFFFFFFFFFFFp+62"), 0x7FFFFFFFFFFFFC00_u64) test__fixdfti(hexfloat("0x1.FFFFFFFFFFFFEp+62"), 0x7FFFFFFFFFFFF800_u64) - test__fixdfti(hexfloat("-0x1.FFFFFFFFFFFFFp+62"), make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000000000000400_u64)) - test__fixdfti(hexfloat("-0x1.FFFFFFFFFFFFEp+62"), make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000000000000800_u64)) + test__fixdfti(hexfloat("-0x1.FFFFFFFFFFFFFp+62"), 0xFFFFFFFFFFFFFFFF8000000000000400_u128.to_i128!) + test__fixdfti(hexfloat("-0x1.FFFFFFFFFFFFEp+62"), 0xFFFFFFFFFFFFFFFF8000000000000800_u128.to_i128!) - test__fixdfti(hexfloat("0x1.FFFFFFFFFFFFFp+126"), make_ti(0x7FFFFFFFFFFFFC00_u64, 0)) - test__fixdfti(hexfloat("0x1.FFFFFFFFFFFFEp+126"), make_ti(0x7FFFFFFFFFFFF800_u64, 0)) + test__fixdfti(hexfloat("0x1.FFFFFFFFFFFFFp+126"), 0x7FFFFFFFFFFFFC000000000000000000_i128) + test__fixdfti(hexfloat("0x1.FFFFFFFFFFFFEp+126"), 0x7FFFFFFFFFFFF8000000000000000000_i128) - test__fixdfti(hexfloat("-0x1.FFFFFFFFFFFFFp+126"), make_ti(0x8000000000000400_u64, 0)) - test__fixdfti(hexfloat("-0x1.FFFFFFFFFFFFEp+126"), make_ti(0x8000000000000800_u64, 0)) + test__fixdfti(hexfloat("-0x1.FFFFFFFFFFFFFp+126"), 0x80000000000004000000000000000000_u128.to_i128!) + test__fixdfti(hexfloat("-0x1.FFFFFFFFFFFFEp+126"), 0x80000000000008000000000000000000_u128.to_i128!) end describe "__fixsfti" do @@ -88,14 +88,14 @@ describe "__fixsfti" do test__fixsfti(hexfloat("0x1.FFFFFEp+62_f32"), 0x7FFFFF8000000000_u64) test__fixsfti(hexfloat("0x1.FFFFFCp+62_f32"), 0x7FFFFF0000000000_u64) - test__fixsfti(hexfloat("-0x1.FFFFFEp+62_f32"), make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000008000000000_u64)) - test__fixsfti(hexfloat("-0x1.FFFFFCp+62_f32"), make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000010000000000_u64)) + test__fixsfti(hexfloat("-0x1.FFFFFEp+62_f32"), 0xFFFFFFFFFFFFFFFF8000008000000000_u128.to_i128!) + test__fixsfti(hexfloat("-0x1.FFFFFCp+62_f32"), 0xFFFFFFFFFFFFFFFF8000010000000000_u128.to_i128!) - test__fixsfti(hexfloat("0x1.FFFFFEp+126_f32"), make_ti(0x7FFFFF8000000000_u64, 0)) - test__fixsfti(hexfloat("0x1.FFFFFCp+126_f32"), make_ti(0x7FFFFF0000000000_u64, 0)) + test__fixsfti(hexfloat("0x1.FFFFFEp+126_f32"), 0x7FFFFF80000000000000000000000000_i128) + test__fixsfti(hexfloat("0x1.FFFFFCp+126_f32"), 0x7FFFFF00000000000000000000000000_i128) - test__fixsfti(hexfloat("-0x1.FFFFFEp+126_f32"), make_ti(0x8000008000000000_u64, 0)) - test__fixsfti(hexfloat("-0x1.FFFFFCp+126_f32"), make_ti(0x8000010000000000_u64, 0)) + test__fixsfti(hexfloat("-0x1.FFFFFEp+126_f32"), 0x80000080000000000000000000000000_u128.to_i128!) + test__fixsfti(hexfloat("-0x1.FFFFFCp+126_f32"), 0x80000100000000000000000000000000_u128.to_i128!) end describe "__fixunsdfti" do @@ -119,11 +119,11 @@ describe "__fixunsdfti" do test__fixunsdfti(hexfloat("0x1.FFFFFFFFFFFFFp+62"), 0x7FFFFFFFFFFFFC00_u64) test__fixunsdfti(hexfloat("0x1.FFFFFFFFFFFFEp+62"), 0x7FFFFFFFFFFFF800_u64) - test__fixunsdfti(hexfloat("0x1.FFFFFFFFFFFFFp+127"), make_tu(0xFFFFFFFFFFFFF800_u64, 0)) - test__fixunsdfti(hexfloat("0x1.0000000000000p+127"), make_tu(0x8000000000000000_u64, 0)) - test__fixunsdfti(hexfloat("0x1.FFFFFFFFFFFFFp+126"), make_tu(0x7FFFFFFFFFFFFC00_u64, 0)) - test__fixunsdfti(hexfloat("0x1.FFFFFFFFFFFFEp+126"), make_tu(0x7FFFFFFFFFFFF800_u64, 0)) - test__fixunsdfti(hexfloat("0x1.0000000000000p+128"), make_tu(0xFFFFFFFFFFFFFFFF_u64, 0xFFFFFFFFFFFFFFFF_u64)) + test__fixunsdfti(hexfloat("0x1.FFFFFFFFFFFFFp+127"), 0xFFFFFFFFFFFFF8000000000000000000_u128) + test__fixunsdfti(hexfloat("0x1.0000000000000p+127"), 0x80000000000000000000000000000000_u128) + test__fixunsdfti(hexfloat("0x1.FFFFFFFFFFFFFp+126"), 0x7FFFFFFFFFFFFC000000000000000000_u128) + test__fixunsdfti(hexfloat("0x1.FFFFFFFFFFFFEp+126"), 0x7FFFFFFFFFFFF8000000000000000000_u128) + test__fixunsdfti(hexfloat("0x1.0000000000000p+128"), 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_u128) end describe "__fixunssfti" do @@ -144,8 +144,8 @@ describe "__fixunssfti" do test__fixunssfti(hexfloat("0x1.FFFFFEp+62_f32"), 0x7FFFFF8000000000_u64) test__fixunssfti(hexfloat("0x1.FFFFFCp+62_f32"), 0x7FFFFF0000000000_u64) - test__fixunssfti(hexfloat("0x1.FFFFFEp+127_f32"), make_tu(0xFFFFFF0000000000_u64, 0)) - test__fixunssfti(hexfloat("0x1.000000p+127_f32"), make_tu(0x8000000000000000_u64, 0)) - test__fixunssfti(hexfloat("0x1.FFFFFEp+126_f32"), make_tu(0x7FFFFF8000000000_u64, 0)) - test__fixunssfti(hexfloat("0x1.FFFFFCp+126_f32"), make_tu(0x7FFFFF0000000000_u64, 0)) + test__fixunssfti(hexfloat("0x1.FFFFFEp+127_f32"), 0xFFFFFF00000000000000000000000000_u128) + test__fixunssfti(hexfloat("0x1.000000p+127_f32"), 0x80000000000000000000000000000000_u128) + test__fixunssfti(hexfloat("0x1.FFFFFEp+126_f32"), 0x7FFFFF80000000000000000000000000_u128) + test__fixunssfti(hexfloat("0x1.FFFFFCp+126_f32"), 0x7FFFFF00000000000000000000000000_u128) end diff --git a/spec/std/crystal/compiler_rt/float_spec.cr b/spec/std/crystal/compiler_rt/float_spec.cr index 4589715958bd..684ee757bbb6 100644 --- a/spec/std/crystal/compiler_rt/float_spec.cr +++ b/spec/std/crystal/compiler_rt/float_spec.cr @@ -44,13 +44,13 @@ describe "__floattidf" do test__floattidf(0x7FFFFF0000000000_u64, hexfloat("0x1.FFFFFCp+62")) test__floattidf(0x7FFFFFFFFFFFF000_u64, hexfloat("0x1.FFFFFFFFFFFFCp+62")) - test__floattidf(make_ti(0x8000008000000000_u64, 0), -hexfloat("0x1.FFFFFEp+126")) - test__floattidf(make_ti(0x8000000000000800_u64, 0), -hexfloat("0x1.FFFFFFFFFFFFEp+126")) - test__floattidf(make_ti(0x8000010000000000_u64, 0), -hexfloat("0x1.FFFFFCp+126")) - test__floattidf(make_ti(0x8000000000001000_u64, 0), -hexfloat("0x1.FFFFFFFFFFFFCp+126")) + test__floattidf(0x80000080000000000000008000000000_u128.to_i128!, -hexfloat("0x1.FFFFFEp+126")) + test__floattidf(0x80000000000008000000008000000000_u128.to_i128!, -hexfloat("0x1.FFFFFFFFFFFFEp+126")) + test__floattidf(0x80000100000000000000008000000000_u128.to_i128!, -hexfloat("0x1.FFFFFCp+126")) + test__floattidf(0x80000000000010000000008000000000_u128.to_i128!, -hexfloat("0x1.FFFFFFFFFFFFCp+126")) - test__floattidf(make_ti(0x8000000000000000_u64, 0), -hexfloat("0x1.000000p+127")) - test__floattidf(make_ti(0x8000000000000001_u64, 0), -hexfloat("0x1.000000p+127")) + test__floattidf(0x80000000000000000000008000000000_u128.to_i128!, -hexfloat("0x1.000000p+127")) + test__floattidf(0x80000000000000010000008000000000_u128.to_i128!, -hexfloat("0x1.000000p+127")) test__floattidf(0x0007FB72E8000000_u64, hexfloat("0x1.FEDCBAp+50")) @@ -82,21 +82,21 @@ describe "__floattidf" do test__floattidf(0x023479FD0E092DDF_u64, hexfloat("0x1.1A3CFE870496Fp+57")) test__floattidf(0x023479FD0E092DE0_u64, hexfloat("0x1.1A3CFE870496Fp+57")) - test__floattidf(make_ti(0x023479FD0E092DC0_u64, 0), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DA1_u64, 1), hexfloat("0x1.1A3CFE870496Dp+121")) - test__floattidf(make_ti(0x023479FD0E092DB0_u64, 2), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DB8_u64, 3), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DB6_u64, 4), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DBF_u64, 5), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DC1_u64, 6), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DC7_u64, 7), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DC8_u64, 8), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DCF_u64, 9), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DD0_u64, 0), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floattidf(make_ti(0x023479FD0E092DD1_u64, 11), hexfloat("0x1.1A3CFE870496Fp+121")) - test__floattidf(make_ti(0x023479FD0E092DD8_u64, 12), hexfloat("0x1.1A3CFE870496Fp+121")) - test__floattidf(make_ti(0x023479FD0E092DDF_u64, 13), hexfloat("0x1.1A3CFE870496Fp+121")) - test__floattidf(make_ti(0x023479FD0E092DE0_u64, 14), hexfloat("0x1.1A3CFE870496Fp+121")) + test__floattidf(0x023479FD0E092DC00000000000000000_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DA10000000000000001_u128, hexfloat("0x1.1A3CFE870496Dp+121")) + test__floattidf(0x023479FD0E092DB00000000000000002_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DB80000000000000003_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DB60000000000000004_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DBF0000000000000005_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DC10000000000000006_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DC70000000000000007_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DC80000000000000008_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DCF0000000000000009_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DD00000000000000000_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floattidf(0x023479FD0E092DD1000000000000000B_u128, hexfloat("0x1.1A3CFE870496Fp+121")) + test__floattidf(0x023479FD0E092DD8000000000000000C_u128, hexfloat("0x1.1A3CFE870496Fp+121")) + test__floattidf(0x023479FD0E092DDF000000000000000D_u128, hexfloat("0x1.1A3CFE870496Fp+121")) + test__floattidf(0x023479FD0E092DE0000000000000000E_u128, hexfloat("0x1.1A3CFE870496Fp+121")) end describe "__floattisf" do @@ -110,11 +110,11 @@ describe "__floattisf" do test__floattisf(0x7FFFFF8000000000_u64, hexfloat("0x1.FFFFFEp+62_f32")) test__floattisf(0x7FFFFF0000000000_u64, hexfloat("0x1.FFFFFCp+62_f32")) - test__floattisf(make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000008000000000_u64), hexfloat("-0x1.FFFFFEp+62_f32")) - test__floattisf(make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000010000000000_u64), hexfloat("-0x1.FFFFFCp+62_f32")) + test__floattisf(0xFFFFFFFFFFFFFFFF8000008000000000_u128.to_i128!, hexfloat("-0x1.FFFFFEp+62_f32")) + test__floattisf(0xFFFFFFFFFFFFFFFF8000010000000000_u128.to_i128!, hexfloat("-0x1.FFFFFCp+62_f32")) - test__floattisf(make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000000000000000_u64), hexfloat("-0x1.000000p+63_f32")) - test__floattisf(make_ti(0xFFFFFFFFFFFFFFFF_u64, 0x8000000000000001_u64), hexfloat("-0x1.000000p+63_f32")) + test__floattisf(0xFFFFFFFFFFFFFFFF8000000000000000_u128.to_i128!, hexfloat("-0x1.000000p+63_f32")) + test__floattisf(0xFFFFFFFFFFFFFFFF8000000000000001_u128.to_i128!, hexfloat("-0x1.000000p+63_f32")) test__floattisf(0x0007FB72E8000000_u64, hexfloat("0x1.FEDCBAp+50_f32")) @@ -130,19 +130,19 @@ describe "__floattisf" do test__floattisf(0x0007FB72E4000001_u64, hexfloat("0x1.FEDCBAp+50_f32")) test__floattisf(0x0007FB72E4000000_u64, hexfloat("0x1.FEDCB8p+50_f32")) - test__floattisf(make_ti(0x0007FB72E8000000_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72E80000000000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72EA000000_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72EB000000_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72EBFFFFFF_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72EC000000_u64, 0), hexfloat("0x1.FEDCBCp+114_f32")) - test__floattisf(make_ti(0x0007FB72E8000001_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72EA0000000000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72EB0000000000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72EBFFFFFF0000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72EC0000000000000000000000_i128, hexfloat("0x1.FEDCBCp+114_f32")) + test__floattisf(0x0007FB72E80000010000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72E6000000_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72E7000000_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72E7FFFFFF_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72E4000001_u64, 0), hexfloat("0x1.FEDCBAp+114_f32")) - test__floattisf(make_ti(0x0007FB72E4000000_u64, 0), hexfloat("0x1.FEDCB8p+114_f32")) + test__floattisf(0x0007FB72E60000000000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72E70000000000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72E7FFFFFF0000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72E40000010000000000000000_i128, hexfloat("0x1.FEDCBAp+114_f32")) + test__floattisf(0x0007FB72E40000000000000000000000_i128, hexfloat("0x1.FEDCB8p+114_f32")) end describe "__floatuntidf" do @@ -157,13 +157,13 @@ describe "__floatuntidf" do test__floatuntidf(0x7FFFFF0000000000_u64, hexfloat("0x1.FFFFFCp+62")) test__floatuntidf(0x7FFFFFFFFFFFF000_u64, hexfloat("0x1.FFFFFFFFFFFFCp+62")) - test__floatuntidf(make_tu(0x8000008000000000_u64, 0), hexfloat("0x1.000001p+127")) - test__floatuntidf(make_tu(0x8000000000000800_u64, 0), hexfloat("0x1.0000000000001p+127")) - test__floatuntidf(make_tu(0x8000010000000000_u64, 0), hexfloat("0x1.000002p+127")) - test__floatuntidf(make_tu(0x8000000000001000_u64, 0), hexfloat("0x1.0000000000002p+127")) + test__floatuntidf(0x80000080000000000000000000000000_u128, hexfloat("0x1.000001p+127")) + test__floatuntidf(0x80000000000008000000000000000000_u128, hexfloat("0x1.0000000000001p+127")) + test__floatuntidf(0x80000100000000000000000000000000_u128, hexfloat("0x1.000002p+127")) + test__floatuntidf(0x80000000000010000000000000000000_u128, hexfloat("0x1.0000000000002p+127")) - test__floatuntidf(make_tu(0x8000000000000000_u64, 0), hexfloat("0x1.000000p+127")) - test__floatuntidf(make_tu(0x8000000000000001_u64, 0), hexfloat("0x1.0000000000000002p+127")) + test__floatuntidf(0x80000000000000000000000000000000_u128, hexfloat("0x1.000000p+127")) + test__floatuntidf(0x80000000000000010000000000000000_u128, hexfloat("0x1.0000000000000002p+127")) test__floatuntidf(0x0007FB72E8000000_u64, hexfloat("0x1.FEDCBAp+50")) @@ -195,21 +195,21 @@ describe "__floatuntidf" do test__floatuntidf(0x023479FD0E092DDF_u64, hexfloat("0x1.1A3CFE870496Fp+57")) test__floatuntidf(0x023479FD0E092DE0_u64, hexfloat("0x1.1A3CFE870496Fp+57")) - test__floatuntidf(make_tu(0x023479FD0E092DC0_u64, 0), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DA1_u64, 1), hexfloat("0x1.1A3CFE870496Dp+121")) - test__floatuntidf(make_tu(0x023479FD0E092DB0_u64, 2), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DB8_u64, 3), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DB6_u64, 4), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DBF_u64, 5), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DC1_u64, 6), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DC7_u64, 7), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DC8_u64, 8), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DCF_u64, 9), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DD0_u64, 0), hexfloat("0x1.1A3CFE870496Ep+121")) - test__floatuntidf(make_tu(0x023479FD0E092DD1_u64, 11), hexfloat("0x1.1A3CFE870496Fp+121")) - test__floatuntidf(make_tu(0x023479FD0E092DD8_u64, 12), hexfloat("0x1.1A3CFE870496Fp+121")) - test__floatuntidf(make_tu(0x023479FD0E092DDF_u64, 13), hexfloat("0x1.1A3CFE870496Fp+121")) - test__floatuntidf(make_tu(0x023479FD0E092DE0_u64, 14), hexfloat("0x1.1A3CFE870496Fp+121")) + test__floatuntidf(0x023479FD0E092DC00000000000000000_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DA10000000000000001_u128, hexfloat("0x1.1A3CFE870496Dp+121")) + test__floatuntidf(0x023479FD0E092DB00000000000000002_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DB80000000000000003_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DB60000000000000004_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DBF0000000000000005_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DC10000000000000006_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DC70000000000000007_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DC80000000000000008_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DCF0000000000000009_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DD00000000000000000_u128, hexfloat("0x1.1A3CFE870496Ep+121")) + test__floatuntidf(0x023479FD0E092DD1000000000000000B_u128, hexfloat("0x1.1A3CFE870496Fp+121")) + test__floatuntidf(0x023479FD0E092DD8000000000000000C_u128, hexfloat("0x1.1A3CFE870496Fp+121")) + test__floatuntidf(0x023479FD0E092DDF000000000000000D_u128, hexfloat("0x1.1A3CFE870496Fp+121")) + test__floatuntidf(0x023479FD0E092DE0000000000000000E_u128, hexfloat("0x1.1A3CFE870496Fp+121")) end describe "__floatuntisf" do @@ -222,11 +222,11 @@ describe "__floatuntisf" do test__floatuntisf(0x7FFFFF8000000000_u64, hexfloat("0x1.FFFFFEp+62_f32")) test__floatuntisf(0x7FFFFF0000000000_u64, hexfloat("0x1.FFFFFCp+62_f32")) - test__floatuntisf(make_tu(0x8000008000000000_u64, 0), hexfloat("0x1.000000p+127_f32")) # inexact hexfloat changed - test__floatuntisf(make_tu(0x8000000000000800_u64, 0), hexfloat("0x1.0p+127_f32")) - test__floatuntisf(make_tu(0x8000010000000000_u64, 0), hexfloat("0x1.000002p+127_f32")) + test__floatuntisf(0x80000080000000000000000000000000_u128, hexfloat("0x1.000000p+127_f32")) # inexact hexfloat changed + test__floatuntisf(0x80000000000008000000000000000000_u128, hexfloat("0x1.0p+127_f32")) + test__floatuntisf(0x80000100000000000000000000000000_u128, hexfloat("0x1.000002p+127_f32")) - test__floatuntisf(make_tu(0x8000000000000000_u64, 0), hexfloat("0x1.000000p+127_f32")) + test__floatuntisf(0x80000000000000000000000000000000_u128, hexfloat("0x1.000000p+127_f32")) test__floatuntisf(0x0007FB72E8000000_u64, hexfloat("0x1.FEDCBAp+50_f32")) @@ -256,16 +256,16 @@ describe "__floatuntisf" do test__floatuntisf(0x0007FB72E4000001_u64, hexfloat("0x1.FEDCBAp+50_f32")) test__floatuntisf(0x0007FB72E4000000_u64, hexfloat("0x1.FEDCB8p+50_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCB90000000000001_u64), hexfloat("0x1.FEDCBAp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBA0000000000000_u64), hexfloat("0x1.FEDCBAp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBAFFFFFFFFFFFFF_u64), hexfloat("0x1.FEDCBAp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBB0000000000000_u64), hexfloat("0x1.FEDCBCp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBB0000000000001_u64), hexfloat("0x1.FEDCBCp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBBFFFFFFFFFFFFF_u64), hexfloat("0x1.FEDCBCp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBC0000000000000_u64), hexfloat("0x1.FEDCBCp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBC0000000000001_u64), hexfloat("0x1.FEDCBCp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBD0000000000000_u64), hexfloat("0x1.FEDCBCp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBD0000000000001_u64), hexfloat("0x1.FEDCBEp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBDFFFFFFFFFFFFF_u64), hexfloat("0x1.FEDCBEp+76_f32")) - test__floatuntisf(make_tu(0x0000000000001FED_u64, 0xCBE0000000000000_u64), hexfloat("0x1.FEDCBEp+76_f32")) + test__floatuntisf(0x0000000000001FEDCB90000000000001_u128, hexfloat("0x1.FEDCBAp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBA0000000000000_u128, hexfloat("0x1.FEDCBAp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBAFFFFFFFFFFFFF_u128, hexfloat("0x1.FEDCBAp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBB0000000000000_u128, hexfloat("0x1.FEDCBCp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBB0000000000001_u128, hexfloat("0x1.FEDCBCp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBBFFFFFFFFFFFFF_u128, hexfloat("0x1.FEDCBCp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBC0000000000000_u128, hexfloat("0x1.FEDCBCp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBC0000000000001_u128, hexfloat("0x1.FEDCBCp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBD0000000000000_u128, hexfloat("0x1.FEDCBCp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBD0000000000001_u128, hexfloat("0x1.FEDCBEp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBDFFFFFFFFFFFFF_u128, hexfloat("0x1.FEDCBEp+76_f32")) + test__floatuntisf(0x0000000000001FEDCBE0000000000000_u128, hexfloat("0x1.FEDCBEp+76_f32")) end diff --git a/spec/std/crystal/compiler_rt/muloti4_spec.cr b/spec/std/crystal/compiler_rt/muloti4_spec.cr index ed52925ee8f9..58931e55e430 100644 --- a/spec/std/crystal/compiler_rt/muloti4_spec.cr +++ b/spec/std/crystal/compiler_rt/muloti4_spec.cr @@ -49,97 +49,97 @@ describe "__muloti4" do test__muloti4(-2097152, 4398046511103, -9223372036852678656, 0) test__muloti4(2097152, -4398046511103, -9223372036852678656, 0) test__muloti4(-2097152, -4398046511103, 9223372036852678656, 0) - test__muloti4(make_ti(0x00000000000000B5, 0x04F333F9DE5BE000), - make_ti(0x0000000000000000, 0x00B504F333F9DE5B), - make_ti(0x7FFFFFFFFFFFF328, 0xDF915DA296E8A000), 0) - test__muloti4(make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), + test__muloti4(0x00000000000000B504F333F9DE5BE000_i128, + 0x000000000000000000B504F333F9DE5B_i128, + 0x7FFFFFFFFFFFF328DF915DA296E8A000_i128, 0) + test__muloti4(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, -2, - make_ti(0x8000000000000000, 0x0000000000000001), 1) + 0x80000000000000000000000000000001_u128.to_i128!, 1) test__muloti4(-2, - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - make_ti(0x8000000000000000, 0x0000000000000001), 1) - test__muloti4(make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, + 0x80000000000000000000000000000001_u128.to_i128!, 1) + test__muloti4(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, -1, - make_ti(0x8000000000000000, 0x0000000000000001), 0) + 0x80000000000000000000000000000001_u128.to_i128!, 0) test__muloti4(-1, - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - make_ti(0x8000000000000000, 0x0000000000000001), 0) - test__muloti4(make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, + 0x80000000000000000000000000000001_u128.to_i128!, 0) + test__muloti4(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, 0, 0, 0) test__muloti4(0, - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, 0, 0) - test__muloti4(make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), + test__muloti4(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, 1, - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), 0) + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, 0) test__muloti4(1, - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), 0) - test__muloti4(make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, 0) + test__muloti4(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, 2, - make_ti(0x8000000000000000, 0x0000000000000001), 1) + 0x80000000000000000000000000000001_u128.to_i128!, 1) test__muloti4(2, - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - make_ti(0x8000000000000000, 0x0000000000000001), 1) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000000), + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, + 0x80000000000000000000000000000001_u128.to_i128!, 1) + test__muloti4(0x80000000000000000000000000000000_u128.to_i128!, -2, - make_ti(0x8000000000000000, 0x0000000000000000), 1) + 0x80000000000000000000000000000000_u128.to_i128!, 1) test__muloti4(-2, - make_ti(0x8000000000000000, 0x0000000000000000), - make_ti(0x8000000000000000, 0x0000000000000000), 1) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000000), + 0x80000000000000000000000000000000_u128.to_i128!, + 0x80000000000000000000000000000000_u128.to_i128!, 1) + test__muloti4(0x80000000000000000000000000000000_u128.to_i128!, -1, - make_ti(0x8000000000000000, 0x0000000000000000), 1) + 0x80000000000000000000000000000000_u128.to_i128!, 1) test__muloti4(-1, - make_ti(0x8000000000000000, 0x0000000000000000), - make_ti(0x8000000000000000, 0x0000000000000000), 1) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000000), + 0x80000000000000000000000000000000_u128.to_i128!, + 0x80000000000000000000000000000000_u128.to_i128!, 1) + test__muloti4(0x80000000000000000000000000000000_u128.to_i128!, 0, 0, 0) test__muloti4(0, - make_ti(0x8000000000000000, 0x0000000000000000), + 0x80000000000000000000000000000000_u128.to_i128!, 0, 0) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000000), + test__muloti4(0x80000000000000000000000000000000_u128.to_i128!, 1, - make_ti(0x8000000000000000, 0x0000000000000000), 0) + 0x80000000000000000000000000000000_u128.to_i128!, 0) test__muloti4(1, - make_ti(0x8000000000000000, 0x0000000000000000), - make_ti(0x8000000000000000, 0x0000000000000000), 0) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000000), + 0x80000000000000000000000000000000_u128.to_i128!, + 0x80000000000000000000000000000000_u128.to_i128!, 0) + test__muloti4(0x80000000000000000000000000000000_u128.to_i128!, 2, - make_ti(0x8000000000000000, 0x0000000000000000), 1) + 0x80000000000000000000000000000000_u128.to_i128!, 1) test__muloti4(2, - make_ti(0x8000000000000000, 0x0000000000000000), - make_ti(0x8000000000000000, 0x0000000000000000), 1) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000001), + 0x80000000000000000000000000000000_u128.to_i128!, + 0x80000000000000000000000000000000_u128.to_i128!, 1) + test__muloti4(0x80000000000000000000000000000001_u128.to_i128!, -2, - make_ti(0x8000000000000000, 0x0000000000000001), 1) + 0x80000000000000000000000000000001_u128.to_i128!, 1) test__muloti4(-2, - make_ti(0x8000000000000000, 0x0000000000000001), - make_ti(0x8000000000000000, 0x0000000000000001), 1) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000001), + 0x80000000000000000000000000000001_u128.to_i128!, + 0x80000000000000000000000000000001_u128.to_i128!, 1) + test__muloti4(0x80000000000000000000000000000001_u128.to_i128!, -1, - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), 0) + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, 0) test__muloti4(-1, - make_ti(0x8000000000000000, 0x0000000000000001), - make_ti(0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), 0) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000001), + 0x80000000000000000000000000000001_u128.to_i128!, + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i128, 0) + test__muloti4(0x80000000000000000000000000000001_u128.to_i128!, 0, 0, 0) test__muloti4(0, - make_ti(0x8000000000000000, 0x0000000000000001), + 0x80000000000000000000000000000001_u128.to_i128!, 0, 0) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000001), + test__muloti4(0x80000000000000000000000000000001_u128.to_i128!, 1, - make_ti(0x8000000000000000, 0x0000000000000001), 0) + 0x80000000000000000000000000000001_u128.to_i128!, 0) test__muloti4(1, - make_ti(0x8000000000000000, 0x0000000000000001), - make_ti(0x8000000000000000, 0x0000000000000001), 0) - test__muloti4(make_ti(0x8000000000000000, 0x0000000000000001), + 0x80000000000000000000000000000001_u128.to_i128!, + 0x80000000000000000000000000000001_u128.to_i128!, 0) + test__muloti4(0x80000000000000000000000000000001_u128.to_i128!, 2, - make_ti(0x8000000000000000, 0x0000000000000000), 1) + 0x80000000000000000000000000000000_u128.to_i128!, 1) test__muloti4(2, - make_ti(0x8000000000000000, 0x0000000000000001), - make_ti(0x8000000000000000, 0x0000000000000000), 1) + 0x80000000000000000000000000000001_u128.to_i128!, + 0x80000000000000000000000000000000_u128.to_i128!, 1) end diff --git a/spec/std/crystal/compiler_rt/multi3_spec.cr b/spec/std/crystal/compiler_rt/multi3_spec.cr index 7e93e3efce1d..f8b6412b12db 100644 --- a/spec/std/crystal/compiler_rt/multi3_spec.cr +++ b/spec/std/crystal/compiler_rt/multi3_spec.cr @@ -3,12 +3,6 @@ require "crystal/compiler_rt/multi3" # Ported from https://github.com/llvm/llvm-project/blob/ce59ccd04023cab3a837da14079ca2dcbfebb70c/compiler-rt/test/builtins/Unit/multi3_test.c -# TODO: Replace helper methods with literals once possible - -private def make_ti(a : Int128, b : Int128) - (a << 64) + b -end - it ".__multi3" do __multi3(0, 0).should eq 0 __multi3(0, 1).should eq 0 @@ -46,7 +40,7 @@ it ".__multi3" do __multi3(2097152, -4398046511103).should eq -9223372036852678656 __multi3(-2097152, -4398046511103).should eq 9223372036852678656 __multi3( - make_ti(0x00000000000000B5, 0x04F333F9DE5BE000), - make_ti(0x0000000000000000, 0x00B504F333F9DE5B) - ).should eq make_ti(0x7FFFFFFFFFFFF328, 0xDF915DA296E8A000) + 0x00000000000000B504F333F9DE5BE000_i128, + 0x000000000000000000B504F333F9DE5B_i128 + ).should eq 0x7FFFFFFFFFFFF328DF915DA296E8A000_i128 end diff --git a/spec/std/crystal/compiler_rt/spec_helper.cr b/spec/std/crystal/compiler_rt/spec_helper.cr index c3d759058366..f45f98d4cc57 100644 --- a/spec/std/crystal/compiler_rt/spec_helper.cr +++ b/spec/std/crystal/compiler_rt/spec_helper.cr @@ -1,15 +1,5 @@ require "spec" -# TODO: Replace helper methods with literals once possible - -def make_ti(a : Int128, b : Int128) - (a.to_i128! << 64) + b -end - -def make_tu(a : UInt128, b : UInt128) - (a.to_u128! << 64) + b -end - # TODO: merge these helpers with #10913 private module HexFloatConverter(F, U) # Converts `str`, a hexadecimal floating-point literal, to an `F`. Truncates