From fd4449853ae9d37c81ca396d7fe7678b8f070702 Mon Sep 17 00:00:00 2001 From: Jacob Lifshay Date: Mon, 3 Apr 2023 18:19:03 -0700 Subject: [PATCH] resolve ToInt32 instruction count disagreement --- openpower/sv.mdwn | 6 +++--- openpower/sv/int_fp_mv.mdwn | 1 - openpower/sv/int_fp_mv/appendix.mdwn | 2 -- openpower/sv/rfc/ls006.mdwn | 4 ++-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/openpower/sv.mdwn b/openpower/sv.mdwn index d214a5403..e4ecb0652 100644 --- a/openpower/sv.mdwn +++ b/openpower/sv.mdwn @@ -225,9 +225,9 @@ Scalable Vector binaries more efficient, such as the crweird group. Others are to bring the Scalar Power ISA up-to-date within specific workloads, such as a JavaScript Rounding instruction -(which saves 35 instructions including 5 branches) (FIXME: disagrees with int_fp_mv and int_fp_mv/appendix). None of them are strictly -necessary but performance and power consumption may be (or, is already) -compromised +(which saves 32 scalar instructions including seven branch instructions). +None of them are strictly necessary but performance and power consumption may +be (or, is already) compromised in certain workloads and use-cases without them. Vector-related but still Scalar: diff --git a/openpower/sv/int_fp_mv.mdwn b/openpower/sv/int_fp_mv.mdwn index becbd7e5f..f363debb5 100644 --- a/openpower/sv/int_fp_mv.mdwn +++ b/openpower/sv/int_fp_mv.mdwn @@ -89,7 +89,6 @@ well-suited for common/important conversion sequences: The assembly listings in the [[int_fp_mv/appendix]] show how costly some of these language-specific conversions are: JavaScript, the worst case, is 32 scalar instructions including seven branch instructions. -(FIXME: disagrees with ls006 and sv.mdwn) # Proposed New Scalar Instructions diff --git a/openpower/sv/int_fp_mv/appendix.mdwn b/openpower/sv/int_fp_mv/appendix.mdwn index 57eaf9d70..02a002e84 100644 --- a/openpower/sv/int_fp_mv/appendix.mdwn +++ b/openpower/sv/int_fp_mv/appendix.mdwn @@ -271,8 +271,6 @@ inline Target bitwise_cast(Src v) { ### 64-bit float -> 32-bit signed integer -(FIXME: disagrees with ls006 and sv.mdwn) - ``` toInt32(double): stfd 1,-16(1) diff --git a/openpower/sv/rfc/ls006.mdwn b/openpower/sv/rfc/ls006.mdwn index 608fe69ff..8cc92d775 100644 --- a/openpower/sv/rfc/ls006.mdwn +++ b/openpower/sv/rfc/ls006.mdwn @@ -79,8 +79,8 @@ implements each variant. **Notes and Observations**: * These instructions are present in many other ISAs. -* JavaScript rounding as one instruction saves 35 instructions including - six branches. (FIXME: disagrees with int_fp_mv and int_fp_mv/appendix) +* JavaScript rounding as one instruction saves 32 scalar instructions + including seven branch instructions. * Both sets are orthogonal (no difference except being Single/Double). This allows IBM to follow the pre-existing precedent of allocating separate Major Opcodes (PO) for Double-precision and Single-precision -- 2.30.2