Re: [x86_64 PATCH] Improve __int128 argument passing (in ix86_expand_move).

2023-09-01 Thread Manolis Tsamis
nvenience. > Best regards, > Roger > -- > > > -Original Message- > > From: Manolis Tsamis > > Sent: 01 September 2023 11:45 > > To: Uros Bizjak > > Cc: Roger Sayle ; gcc-patches@gcc.gnu.org > > Subject: Re: [x86_64 PATCH] Improve __int128 arg

RE: [x86_64 PATCH] Improve __int128 argument passing (in ix86_expand_move).

2023-09-01 Thread Roger Sayle
gnu.org > Subject: Re: [x86_64 PATCH] Improve __int128 argument passing (in > ix86_expand_move). > > Hi Roger, > > I've (accidentally) found a codegen regression that I bisected down to this > patch. > For these two functions: > > typedef struct { > fl

Re: [x86_64 PATCH] Improve __int128 argument passing (in ix86_expand_move).

2023-09-01 Thread Manolis Tsamis
Hi Roger, I've (accidentally) found a codegen regression that I bisected down to this patch. For these two functions: typedef struct { float minx, miny; float maxx, maxy; } AABB; int TestOverlap(AABB a, AABB b) { return a.minx <= b.maxx && a.miny <= b.maxy && a.maxx >= b.minx

Re: [x86_64 PATCH] Improve __int128 argument passing (in ix86_expand_move).

2023-07-06 Thread Uros Bizjak via Gcc-patches
On Thu, Jul 6, 2023 at 3:48 PM Roger Sayle wrote: > > > On Thu, Jul 6, 2023 at 2:04 PM Roger Sayle > > wrote: > > > > > > > > > Passing 128-bit integer (TImode) parameters on x86_64 can sometimes > > > result in surprising code. Consider the example below (from PR 43644): > > > > > > __uint128 f

RE: [x86_64 PATCH] Improve __int128 argument passing (in ix86_expand_move).

2023-07-06 Thread Roger Sayle
> On Thu, Jul 6, 2023 at 2:04 PM Roger Sayle > wrote: > > > > > > Passing 128-bit integer (TImode) parameters on x86_64 can sometimes > > result in surprising code. Consider the example below (from PR 43644): > > > > __uint128 foo(__uint128 x, unsigned long long y) { > > return x+y; > > } > > >

Re: [x86_64 PATCH] Improve __int128 argument passing (in ix86_expand_move).

2023-07-06 Thread Uros Bizjak via Gcc-patches
On Thu, Jul 6, 2023 at 2:04 PM Roger Sayle wrote: > > > Passing 128-bit integer (TImode) parameters on x86_64 can sometimes > result in surprising code. Consider the example below (from PR 43644): > > __uint128 foo(__uint128 x, unsigned long long y) { > return x+y; > } > > which currently resul

[x86_64 PATCH] Improve __int128 argument passing (in ix86_expand_move).

2023-07-06 Thread Roger Sayle
Passing 128-bit integer (TImode) parameters on x86_64 can sometimes result in surprising code. Consider the example below (from PR 43644): __uint128 foo(__uint128 x, unsigned long long y) { return x+y; } which currently results in 6 consecutive movq instructions: foo:movq%rsi, %rax