Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <fcea0650cf69a0f092d64d699ca21acc@www.novabbs.org>
Deutsch   English   Français   Italiano  
<fcea0650cf69a0f092d64d699ca21acc@www.novabbs.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder6.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail
From: mitchalsup@aol.com (MitchAlsup1)
Newsgroups: comp.arch
Subject: Re: Cray style vectors
Date: Tue, 12 Mar 2024 17:13:38 +0000
Organization: Rocksolid Light
Message-ID: <fcea0650cf69a0f092d64d699ca21acc@www.novabbs.org>
References: <upq0cr$6b5m$1@dont-email.me> <uqge2p$279ql$1@dont-email.me> <uqhiqb$2grub$1@dont-email.me> <uqlm2c$3e9bp$1@dont-email.me> <uqmn7c$3n35k$1@dont-email.me> <2024Feb16.082736@mips.complang.tuwien.ac.at> <uqnmue$3o4m9$1@dont-email.me> <2024Feb16.152320@mips.complang.tuwien.ac.at> <uqobhv$3o4m9$2@dont-email.me> <1067c5b46cebaa18a0fc50fc423aa86a@www.novabbs.com> <uqpngc$3o4m9$3@dont-email.me> <uqpuid$bhg0$1@dont-email.me> <2024Feb17.190353@mips.complang.tuwien.ac.at> <uqqvkc$i2cu$1@dont-email.me> <uqvk2o$1snbf$1@dont-email.me> <ur1h0v$emi4$1@newsreader4.netcologne.de> <86r0h6wyil.fsf@linuxsc.com> <ur7v2r$ipnu$1@newsreader4.netcologne.de> <861q91ulhs.fsf@linuxsc.com> <urkbsu$34rpk$1@dont-email.me> <864jdcsqmn.fsf@linuxsc.com> <usp8lp$7i96$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: i2pn2.org;
	logging-data="1749555"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="PGd4t4cXnWwgUWG9VtTiCsm47oOWbHLcTr4rYoM0Edo";
User-Agent: Rocksolid Light
X-Spam-Checker-Version: SpamAssassin 4.0.0
X-Rslight-Posting-User: ac58ceb75ea22753186dae54d967fed894c3dce8
X-Rslight-Site: $2y$10$JkaOhZC1d4gSBkJnMnbTk.5.4Hph4A56MqRi/0GqIMcYi9ZDfTEoy
Bytes: 2828
Lines: 31

Terje Mathisen wrote:

> Tim Rentsch wrote:
>> Terje Mathisen <terje.mathisen@tmsw.no> writes:
>> 
>>> If I really had to write a 64x64->128 MUL, with no widening MUL or
>>> MULH which returns the high half, then I would punt and do it using
>>> 32-bit parts (all variables are u64):  [...]
>> 
>> I wrote some code along the same lines.  A difference is you
>> are considering unsigned multiplication, and I am considering
>> signed multiplication.
>> 
> Signed mul is just a special case of unsigned mul, right?

The low order N bits are all the same while the higher order N bits
are different; where N is operand size.

> I.e. in case of a signed widening mul, you'd first extract the signs, 
> convert the inputs to unsigned, then do the unsigned widening mul, 
> before finally resotirng the sign as the XOR of the input signs?

SW may have to do that, HW does not.

> There is a small gotcha if either of the inputs are of the 0x80000000 
> form, i.e. MININT, but the naive iabs() conversion will do the right 
> thing by leaving the input unchanged.

> At the other end there cannot be any issues since restoring a negative 
> output sign cannot overflow/fail.

> Terje