authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-08 16:43:57-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-15 03:07:51-04:00
log019c8844811ffb8b385ac8891cfd17cbf60d104a
treeb9e6b0d64430907d9b44bd61abb802722262cd7c
parent6f3dacc1073c30d10f640fe630580a4866cbd9db

x86_64: add missing multply of `f16`


2 files changed, 6 insertions(+), 1 deletions(-)

src/arch/x86_64/CodeGen.zig+5
...@@ -6345,6 +6345,7 @@ fn genBinOp(...@@ -6345,6 +6345,7 @@ fn genBinOp(
6345 switch (air_tag) {6345 switch (air_tag) {
6346 .add => .{ .v_ss, .add },6346 .add => .{ .v_ss, .add },
6347 .sub => .{ .v_ss, .sub },6347 .sub => .{ .v_ss, .sub },
6348 .mul => .{ .v_ss, .mul },
6348 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ss, .div },6349 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ss, .div },
6349 .max => .{ .v_ss, .max },6350 .max => .{ .v_ss, .max },
6350 .min => .{ .v_ss, .max },6351 .min => .{ .v_ss, .max },
...@@ -6421,6 +6422,7 @@ fn genBinOp(...@@ -6421,6 +6422,7 @@ fn genBinOp(
6421 switch (air_tag) {6422 switch (air_tag) {
6422 .add => .{ .v_ss, .add },6423 .add => .{ .v_ss, .add },
6423 .sub => .{ .v_ss, .sub },6424 .sub => .{ .v_ss, .sub },
6425 .mul => .{ .v_ss, .mul },
6424 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ss, .div },6426 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ss, .div },
6425 .max => .{ .v_ss, .max },6427 .max => .{ .v_ss, .max },
6426 .min => .{ .v_ss, .max },6428 .min => .{ .v_ss, .max },
...@@ -6468,6 +6470,7 @@ fn genBinOp(...@@ -6468,6 +6470,7 @@ fn genBinOp(
6468 switch (air_tag) {6470 switch (air_tag) {
6469 .add => .{ .v_ps, .add },6471 .add => .{ .v_ps, .add },
6470 .sub => .{ .v_ps, .sub },6472 .sub => .{ .v_ps, .sub },
6473 .mul => .{ .v_ps, .mul },
6471 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ps, .div },6474 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ps, .div },
6472 .max => .{ .v_ps, .max },6475 .max => .{ .v_ps, .max },
6473 .min => .{ .v_ps, .max },6476 .min => .{ .v_ps, .max },
...@@ -6507,6 +6510,7 @@ fn genBinOp(...@@ -6507,6 +6510,7 @@ fn genBinOp(
6507 switch (air_tag) {6510 switch (air_tag) {
6508 .add => .{ .v_ps, .add },6511 .add => .{ .v_ps, .add },
6509 .sub => .{ .v_ps, .sub },6512 .sub => .{ .v_ps, .sub },
6513 .mul => .{ .v_ps, .mul },
6510 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ps, .div },6514 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ps, .div },
6511 .max => .{ .v_ps, .max },6515 .max => .{ .v_ps, .max },
6512 .min => .{ .v_ps, .max },6516 .min => .{ .v_ps, .max },
...@@ -6546,6 +6550,7 @@ fn genBinOp(...@@ -6546,6 +6550,7 @@ fn genBinOp(
6546 switch (air_tag) {6550 switch (air_tag) {
6547 .add => .{ .v_ps, .add },6551 .add => .{ .v_ps, .add },
6548 .sub => .{ .v_ps, .sub },6552 .sub => .{ .v_ps, .sub },
6553 .mul => .{ .v_ps, .mul },
6549 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ps, .div },6554 .div_float, .div_trunc, .div_floor, .div_exact => .{ .v_ps, .div },
6550 .max => .{ .v_ps, .max },6555 .max => .{ .v_ps, .max },
6551 .min => .{ .v_ps, .max },6556 .min => .{ .v_ps, .max },
test/behavior/floatop.zig+1-1
...@@ -184,7 +184,7 @@ test "more @sqrt f16 tests" {...@@ -184,7 +184,7 @@ test "more @sqrt f16 tests" {
184test "another, possibly redundant @sqrt test" {184test "another, possibly redundant @sqrt test" {
185 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO185 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
186 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO186 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
187 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO187 if (no_x86_64_hardware_f16_support) return error.SkipZigTest; // TODO
188 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;188 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
189189
190 try testSqrtLegacy(f64, 12.0);190 try testSqrtLegacy(f64, 12.0);