* [PATCH] tests/tcg: Replace -mpower8-vector with -mvsx
@ 2024-10-21 14:27 Ilya Leoshkevich
2024-10-22 2:59 ` Richard Henderson
0 siblings, 1 reply; 4+ messages in thread
From: Ilya Leoshkevich @ 2024-10-21 14:27 UTC (permalink / raw)
To: Nicholas Piggin, Daniel Henrique Barboza
Cc: Richard Henderson, Kewen Lin, qemu-devel, qemu-ppc,
Ilya Leoshkevich
[1] deprecated -mpower8-vector, resulting in:
powerpc64-linux-gnu-gcc: warning: switch '-mpower8-vector' is no longer supported
qemu/tests/tcg/ppc64/vsx_f2i_nan.c:4:15: error: expected ';' before 'float'
4 | typedef vector float vsx_float32_vec_t;
| ^~~~~~
Similar to how this was done for the GCC testcases, replace
-mpower8-vector with -mvsx.
[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109987
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
tests/tcg/ppc64/Makefile.target | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/tcg/ppc64/Makefile.target b/tests/tcg/ppc64/Makefile.target
index 1940886c737..d1b00d2bf09 100644
--- a/tests/tcg/ppc64/Makefile.target
+++ b/tests/tcg/ppc64/Makefile.target
@@ -6,7 +6,7 @@ VPATH += $(SRC_PATH)/tests/tcg/ppc64
config-cc.mak: Makefile
$(quiet-@)( \
- $(call cc-option,-mpower8-vector, CROSS_CC_HAS_POWER8_VECTOR); \
+ $(call cc-option,-mvsx, CROSS_CC_HAS_VSX); \
$(call cc-option,-mpower10, CROSS_CC_HAS_POWER10)) 3> config-cc.mak
-include config-cc.mak
@@ -23,15 +23,15 @@ run-threadcount: threadcount
run-plugin-threadcount-with-%:
$(call skip-test, $<, "BROKEN (flaky with clang) ")
-ifneq ($(CROSS_CC_HAS_POWER8_VECTOR),)
+ifneq ($(CROSS_CC_HAS_VSX),)
PPC64_TESTS=bcdsub non_signalling_xscv
endif
-$(PPC64_TESTS): CFLAGS += -mpower8-vector
+$(PPC64_TESTS): CFLAGS += -mvsx
-ifneq ($(CROSS_CC_HAS_POWER8_VECTOR),)
+ifneq ($(CROSS_CC_HAS_VSX),)
PPC64_TESTS += vsx_f2i_nan
endif
-vsx_f2i_nan: CFLAGS += -mpower8-vector -I$(SRC_PATH)/include
+vsx_f2i_nan: CFLAGS += -mvsx -I$(SRC_PATH)/include
PPC64_TESTS += mtfsf
PPC64_TESTS += mffsce
--
2.47.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] tests/tcg: Replace -mpower8-vector with -mvsx
2024-10-21 14:27 [PATCH] tests/tcg: Replace -mpower8-vector with -mvsx Ilya Leoshkevich
@ 2024-10-22 2:59 ` Richard Henderson
2024-10-23 12:17 ` Ilya Leoshkevich
0 siblings, 1 reply; 4+ messages in thread
From: Richard Henderson @ 2024-10-22 2:59 UTC (permalink / raw)
To: Ilya Leoshkevich, Nicholas Piggin, Daniel Henrique Barboza
Cc: Kewen Lin, qemu-devel, qemu-ppc
On 10/21/24 07:27, Ilya Leoshkevich wrote:
> [1] deprecated -mpower8-vector, resulting in:
>
> powerpc64-linux-gnu-gcc: warning: switch '-mpower8-vector' is no longer supported
> qemu/tests/tcg/ppc64/vsx_f2i_nan.c:4:15: error: expected ';' before 'float'
> 4 | typedef vector float vsx_float32_vec_t;
> | ^~~~~~
>
> Similar to how this was done for the GCC testcases, replace
> -mpower8-vector with -mvsx.
>
> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109987
>
> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> ---
> tests/tcg/ppc64/Makefile.target | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/tests/tcg/ppc64/Makefile.target b/tests/tcg/ppc64/Makefile.target
> index 1940886c737..d1b00d2bf09 100644
> --- a/tests/tcg/ppc64/Makefile.target
> +++ b/tests/tcg/ppc64/Makefile.target
> @@ -6,7 +6,7 @@ VPATH += $(SRC_PATH)/tests/tcg/ppc64
>
> config-cc.mak: Makefile
> $(quiet-@)( \
> - $(call cc-option,-mpower8-vector, CROSS_CC_HAS_POWER8_VECTOR); \
> + $(call cc-option,-mvsx, CROSS_CC_HAS_VSX); \
> $(call cc-option,-mpower10, CROSS_CC_HAS_POWER10)) 3> config-cc.mak
I don't think this is quite right.
I think you need -mpower8 to get OPTION_MASK_P8_VECTOR set.
> +ifneq ($(CROSS_CC_HAS_VSX),)
> PPC64_TESTS=bcdsub non_signalling_xscv
bcdsub is not in the base VSX instruction set, for instance.
r~
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] tests/tcg: Replace -mpower8-vector with -mvsx
2024-10-22 2:59 ` Richard Henderson
@ 2024-10-23 12:17 ` Ilya Leoshkevich
2024-10-23 16:20 ` Richard Henderson
0 siblings, 1 reply; 4+ messages in thread
From: Ilya Leoshkevich @ 2024-10-23 12:17 UTC (permalink / raw)
To: Richard Henderson, Nicholas Piggin, Daniel Henrique Barboza
Cc: Kewen Lin, qemu-devel, qemu-ppc
On Mon, 2024-10-21 at 19:59 -0700, Richard Henderson wrote:
> On 10/21/24 07:27, Ilya Leoshkevich wrote:
> > [1] deprecated -mpower8-vector, resulting in:
> >
> > powerpc64-linux-gnu-gcc: warning: switch '-mpower8-vector' is
> > no longer supported
> > qemu/tests/tcg/ppc64/vsx_f2i_nan.c:4:15: error: expected ';'
> > before 'float'
> > 4 | typedef vector float vsx_float32_vec_t;
> > | ^~~~~~
> >
> > Similar to how this was done for the GCC testcases, replace
> > -mpower8-vector with -mvsx.
> >
> > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109987
> >
> > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> > ---
> > tests/tcg/ppc64/Makefile.target | 10 +++++-----
> > 1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/tests/tcg/ppc64/Makefile.target
> > b/tests/tcg/ppc64/Makefile.target
> > index 1940886c737..d1b00d2bf09 100644
> > --- a/tests/tcg/ppc64/Makefile.target
> > +++ b/tests/tcg/ppc64/Makefile.target
> > @@ -6,7 +6,7 @@ VPATH += $(SRC_PATH)/tests/tcg/ppc64
> >
> > config-cc.mak: Makefile
> > $(quiet-@)( \
> > - $(call cc-option,-mpower8-vector,
> > CROSS_CC_HAS_POWER8_VECTOR); \
> > + $(call cc-option,-mvsx, CROSS_CC_HAS_VSX);
> > \
> > $(call cc-option,-mpower10,
> > CROSS_CC_HAS_POWER10)) 3> config-cc.mak
>
> I don't think this is quite right.
> I think you need -mpower8 to get OPTION_MASK_P8_VECTOR set.
Do you mean -mcpu=power8? -mpower8 is a GAS option.
>
> > +ifneq ($(CROSS_CC_HAS_VSX),)
> > PPC64_TESTS=bcdsub non_signalling_xscv
>
> bcdsub is not in the base VSX instruction set, for instance.
>
>
> r~
I was confused why -mvsx works in practice, so I spent some time and
managed to create a "hostile" gcc build, in which this is now a
problem, using:
./configure --target=powerpc64-linux-gnu --enable-checking \
--disable-bootstrap \
--with-as="$(which powerpc64-linux-gnu-as)"
The issue is masked by two things:
- GCC passes "-many" to GAS. GCC commit e154242724b0 ("[RS6000] Don't
pass -many to the assembler") stops --enable-checking builds from
doing this.
- binutils has the following line:
/* The minimum supported cpu for 64-bit little-endian is power8. */
ppc_cpu |= ppc_parse_cpu (ppc_cpu, &sticky, "power8");
so one needs to use the big-endian toolchain to see the problem.
I'll send a v2.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] tests/tcg: Replace -mpower8-vector with -mvsx
2024-10-23 12:17 ` Ilya Leoshkevich
@ 2024-10-23 16:20 ` Richard Henderson
0 siblings, 0 replies; 4+ messages in thread
From: Richard Henderson @ 2024-10-23 16:20 UTC (permalink / raw)
To: Ilya Leoshkevich, Nicholas Piggin, Daniel Henrique Barboza
Cc: Kewen Lin, qemu-devel, qemu-ppc
On 10/23/24 05:17, Ilya Leoshkevich wrote:
> On Mon, 2024-10-21 at 19:59 -0700, Richard Henderson wrote:
>> On 10/21/24 07:27, Ilya Leoshkevich wrote:
>>> [1] deprecated -mpower8-vector, resulting in:
>>>
>>> powerpc64-linux-gnu-gcc: warning: switch '-mpower8-vector' is
>>> no longer supported
>>> qemu/tests/tcg/ppc64/vsx_f2i_nan.c:4:15: error: expected ';'
>>> before 'float'
>>> 4 | typedef vector float vsx_float32_vec_t;
>>> | ^~~~~~
>>>
>>> Similar to how this was done for the GCC testcases, replace
>>> -mpower8-vector with -mvsx.
>>>
>>> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109987
>>>
>>> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
>>> ---
>>> tests/tcg/ppc64/Makefile.target | 10 +++++-----
>>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/tests/tcg/ppc64/Makefile.target
>>> b/tests/tcg/ppc64/Makefile.target
>>> index 1940886c737..d1b00d2bf09 100644
>>> --- a/tests/tcg/ppc64/Makefile.target
>>> +++ b/tests/tcg/ppc64/Makefile.target
>>> @@ -6,7 +6,7 @@ VPATH += $(SRC_PATH)/tests/tcg/ppc64
>>>
>>> config-cc.mak: Makefile
>>> $(quiet-@)( \
>>> - $(call cc-option,-mpower8-vector,
>>> CROSS_CC_HAS_POWER8_VECTOR); \
>>> + $(call cc-option,-mvsx, CROSS_CC_HAS_VSX);
>>> \
>>> $(call cc-option,-mpower10,
>>> CROSS_CC_HAS_POWER10)) 3> config-cc.mak
>>
>> I don't think this is quite right.
>> I think you need -mpower8 to get OPTION_MASK_P8_VECTOR set.
>
> Do you mean -mcpu=power8? -mpower8 is a GAS option.
It looks like I do, yes.
Also in that vein, -mpower10 has been marked WarnRemoved in gcc trunk.
> I was confused why -mvsx works in practice, so I spent some time and
> managed to create a "hostile" gcc build, in which this is now a
> problem, using:
>
> ./configure --target=powerpc64-linux-gnu --enable-checking \
> --disable-bootstrap \
> --with-as="$(which powerpc64-linux-gnu-as)"
>
> The issue is masked by two things:
>
> - GCC passes "-many" to GAS. GCC commit e154242724b0 ("[RS6000] Don't
> pass -many to the assembler") stops --enable-checking builds from
> doing this.
>
> - binutils has the following line:
>
> /* The minimum supported cpu for 64-bit little-endian is power8. */
> ppc_cpu |= ppc_parse_cpu (ppc_cpu, &sticky, "power8");
>
> so one needs to use the big-endian toolchain to see the problem.
Ah hah! Good sleuthing.
r~
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-10-23 16:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-21 14:27 [PATCH] tests/tcg: Replace -mpower8-vector with -mvsx Ilya Leoshkevich
2024-10-22 2:59 ` Richard Henderson
2024-10-23 12:17 ` Ilya Leoshkevich
2024-10-23 16:20 ` Richard Henderson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).