x86_64: rewrite scalar -|

This commit is contained in:
Jacob Young 2025-05-12 22:52:16 -04:00
parent 4adb7eca6a
commit 3529889cf3
3 changed files with 1729 additions and 4 deletions

File diff suppressed because it is too large Load Diff

View File

@ -127,12 +127,12 @@ test "saturating subtraction" {
test "saturating subtraction 128bit" {
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
const S = struct {
fn doTheTest() !void {

View File

@ -5097,6 +5097,14 @@ test subWrap {
try test_sub_wrap.testIntVectors();
}
inline fn subSat(comptime Type: type, lhs: Type, rhs: Type) Type {
return lhs -| rhs;
}
test subSat {
const test_sub_sat = binary(subSat, .{});
try test_sub_sat.testInts();
}
inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) {
@setRuntimeSafety(false);
return @as(DoubleBits(Type), lhs) * rhs;