Article View: comp.arch
Article #12085Re: More on Linpack pivoting: isamax and instruction set design
From: Robert D. Silverman
Date: Fri, 14 Jun 1991 13:43
Date: Fri, 14 Jun 1991 13:43
35 lines
1923 bytes
1923 bytes
In article <1991Jun13.234834.22970@neon.Stanford.EDU> andy@DEC-Lite.Stanford.EDU (Andy Freeman) writes:
:In article <396@validgh.com> dgh@validgh.com (David G. Hough on validgh) writes:
:> do 30 i = 2,n
:> if(abs(dx(i)).le.dmax) go to 30
:> isamax = i
:> dmax = abs(dx(i))
:> 30 continue
:
:One instruction that can eliminate the conditional branch is
^^^^^^^^^^^^
:conditional assignment. (It is unclear whether it should be a 3 in 1
: do 30 i = 2, n
: absdx = abs(dx(i))
: ibig = absdx .le. dmax
^^^^^^^^^^^^^^^^^^^^^^^^
I would be very interested in seeing the assembler code that gets
emitted for this line of Fortran. How can this statement get executed
WITHOUT a branch??
I also have never seen a machine that has conditional assignment
implemented as an instruction! (As indicated above). What machine is
this? Could you show us the assembler syntax??
I ** believe ** that the above conditional assignment will get compiled
into a test and branch. I don't know of any machine that provides
instructions to do otherwise. It doesn't appear to the Fortan programmer
to be a branch because the branch is 'hidden'.
Of course, I could be wrong.
--
Bob Silverman
#include <std.disclaimer>
Mitre Corporation, Bedford, MA 01730
"You can lead a horse's ass to knowledge, but you can't make him think"
Technical Details
Message-ID:
<1991Jun14.134338.4673@linus.mitre.org>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!linus!linus!frieda!bsReferences:
<396@validgh.com> <1991Jun13.234834.22970@neon.Stanford.EDU>Show Full Headers
Complete Article Headers
Newsgroups: comp.arch Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!linus!linus!frieda!bs From: bs@frieda.mitre.org (Robert D. Silverman) Subject: Re: More on Linpack pivoting: isamax and instruction set design Message-ID: <1991Jun14.134338.4673@linus.mitre.org> Sender: news@linus.mitre.org (News Service) Nntp-Posting-Host: frieda.mitre.org Organization: The MITRE Corporation, Bedford, MA 01730 References: <396@validgh.com> <1991Jun13.234834.22970@neon.Stanford.EDU> Date: Fri, 14 Jun 1991 13:43:38 GMT