Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!zaphod.mps.ohio-state.edu!usc!bbn.com!slackey From: slackey@bbn.com (Stan Lackey) Newsgroups: comp.arch Subject: Re: isamax and instruction set design Message-ID: <64739@bbn.BBN.COM> Date: 18 Jun 91 20:27:36 GMT References: <396@validgh.com> <1991Jun13.234834.22970@neon.Stanford.EDU> <1991Jun14.134338.4673@linus.mitre.org> <1991Jun14.163141.17728@rice.edu> Sender: news@bbn.com Reply-To: slackey@BBN.COM (Stan Lackey) Organization: Bolt Beranek and Newman Inc., Cambridge MA Lines: 24 In article <1991Jun14.163141.17728@rice.edu> preston@asta.rice.edu (Preston Briggs) writes: >bs@frieda.mitre.org (Robert D. Silverman) writes: > >>: 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?? > >Don't know of any conditional assignments, though we might >use a skip instruction to accomplish the purpose. I once worked on a machine that had instructions like x=min(y,z) in hardware. Also there were vector instructions that would elementwise compare vectors and build a vector of logicals which could be applied to a subsequent vector op. So a loop of the form where (a(i) .lt. b(i)) c(i) = d(i) + e(i) could be done with two vector instructions and no branches (other than loop control, of course). -Stan