Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions spec/std/crystal/compiler_rt/divmod128_spec.cr
Original file line number Diff line number Diff line change
Expand Up @@ -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!)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why 0x80000000000000000000000000000000_u128.to_i128! and not -0x80000000000000000000000000000000_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
Expand All @@ -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
46 changes: 23 additions & 23 deletions spec/std/crystal/compiler_rt/fixint_spec.cr
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Loading