On Tue, Aug 25, 2026 at 4:25 AM H.J. Lu <[email protected]> wrote:
>
> Remove *fix_trunc<mode>si_sse_zext and *fix_trunc<mode>si_sse_2_zext
> since they do not zero-extend SImode to DImode, as CVTTSD2SI does
>
> IF 64-Bit Mode and OperandSize = 64
> THEN
> DEST[63:0] := 
> Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[63:0]);
> ELSE
> DEST[31:0] := 
> Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[63:0]);
> FI;
>
> and CVTTSS2SI does
>
> IF 64-Bit Mode and OperandSize = 64
> THEN
> DEST[63:0] := 
> Convert_Single_Precision_Floating_Point_To_Integer_Truncate(SRC[31:0]);
> ELSE
> DEST[31:0] := 
> Convert_Single_Precision_Floating_Point_To_Integer_Truncate(SRC[31:0]);
> FI;
>
> gcc/
>
> PR target/127045
> * config/i386/i386.md (*fix_trunc<mode>si_sse_zext): Removed.
> (*fix_trunc<mode>si_sse_2_zext): Likewise.
>
> gcc/testsuite/
>
> PR target/127045
> * gcc.target/i386/pr127045.c: New test.
> * gcc.target/i386/zext-sse-1.c (func1): Adjust expected codegen.
> (func2): Likewise.
> * gcc.target/i386/zext-sse-2.c (func1): Likewise.
> (func2): Likewise.

OK.

Thanks,
Uros.

Reply via email to