From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C9DCF395BC3F; Wed, 16 Nov 2022 17:03:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C9DCF395BC3F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668618214; bh=oEmCaZZegnuFsYEdUgOy02i8Jskj9FhetgFxMep5TaU=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Lj2l0dyAU3OTL4ZmxttStFJFSqM2qpUQ8HkH0d5eDVKs0ogJkYJOTn9BJu91akvyf zJ15lM8hSo5hkTzfS3QQk731SqHkIXOf/nQNcSGxm78KUNPvIV6RxWI36r9/MrsySP sqwNye4a0jnCVd9sh84ivVvMTach71pJsXI9TkFA= From: "hubicka at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/99408] s3251 benchmark of TSVC vectorized by clang runs about 7 times faster compared to gcc Date: Wed, 16 Nov 2022 17:03:34 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: enhancement X-Bugzilla-Who: hubicka at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D99408 --- Comment #2 from Jan Hubicka --- This also reproduces with zen4 and double. jh@alberti:~/tsvc/bin> cat tt.c typedef double real_t; #define iterations 100000 #define LEN_1D 32000 #define LEN_2D 256 real_t a[LEN_1D],b[LEN_1D],c[LEN_1D],d[LEN_1D],e[LEN_1D]; void main(void) { for (int nl =3D 0; nl < iterations; nl++) { for (int i =3D 0; i < LEN_1D-1; i++){ a[i+1] =3D b[i]+c[i]; b[i] =3D c[i]*e[i]; d[i] =3D a[i]*e[i]; } } } jh@alberti:~/tsvc/bin> ~/trunk-install/bin/gcc -Ofast -march=3Dnative tt.c jh@alberti:~/tsvc/bin> time ./a.out real 0m3.590s user 0m3.585s sys 0m0.004s jh@alberti:~/tsvc/bin> clang -Ofast -march=3Dnative tt.c tt.c:6:1: warning: return type of 'main' is not 'int' [-Wmain-return-type] void ^ tt.c:6:1: note: change return type to 'int' void ^~~~ int 1 warning generated. jh@alberti:~/tsvc/bin> time ./a.out real 0m1.538s user 0m1.538s sys 0m0.000s gcc generates: =E2=94=82 60: vmovapd 0x67e080(%rax),%zmm7=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 0.15 =E2=94=82 vmovapd 0x601080(%rax),%zmm2=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 1.07 =E2=94=82 add $0x40,%rax=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20 =E2=94=82 vaddpd 0x6bc840(%rax),%zmm7,%zmm0=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.00 =E2=94=82 vmovupd %zmm0,0x6fb048(%rax)=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 11.10 =E2=94=82 vmulpd 0x601040(%rax),%zmm7,%zmm0=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 9.46 =E2=94=82 vmovapd %zmm0,0x6bc840(%rax)=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 0.01 =E2=94=82 vmulpd 0x6fb040(%rax),%zmm2,%zmm0=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 78.20 =E2=94=82 vmovapd %zmm0,0x63f840(%rax)=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 =E2=94=82 cmp $0x3e7c0,%rax=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20 =E2=94=82 =E2=86=91 jne 60=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 clang generates: =E2=94=82 nop=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =E2=94=82 a0: vmovupd (%r9,%rdx,1),%zmm15=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 0.46 =E2=94=82 vmovupd (%r9,%rdi,1),%zmm19=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 0.22 =E2=94=82 vmovupd 0x40(%r9,%rdx,1),%zmm16=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.56 =E2=94=82 vmovupd 0x40(%r9,%rdi,1),%zmm22=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.92 =E2=94=82 vmovupd 0x80(%r9,%rdx,1),%zmm17=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 1.85 =E2=94=82 vmovupd 0x80(%r9,%rdi,1),%zmm21=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 1.51 =E2=94=82 vaddpd (%r9,%rcx,1),%zmm15,%zmm18=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.84 =E2=94=82 vmulpd %zmm15,%zmm19,%zmm15=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.47 =E2=94=82 vmovupd %zmm15,(%r9,%rcx,1)=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20 3.37 =E2=94=82 vaddpd 0x40(%r9,%rcx,1),%zmm16,%zmm15=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.56 =E2=94=82 vmulpd %zmm16,%zmm22,%zmm16=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.69 =E2=94=82 vmovupd %zmm16,0x40(%r9,%rcx,1)=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 3.82 =E2=94=82 vmovupd %zmm18,0x8(%r9,%rsi,1)=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 3.27 =E2=94=82 vmovapd %zmm15,%zmm20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 =E2=94=82 vmovupd %zmm15,0x48(%r9,%rsi,1)=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 3.60 =E2=94=82 vpermt2pd %zmm18,%zmm13,%zmm20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.47 =E2=94=82 vpermt2pd %zmm14,%zmm13,%zmm18=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.36 =E2=94=82 vmulpd %zmm19,%zmm18,%zmm18=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 1.07 =E2=94=82 vmulpd %zmm22,%zmm20,%zmm14=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 1.33 =E2=94=82 vmovupd %zmm18,(%r9,%r8,1)=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 6.31 =E2=94=82 vmovupd %zmm14,0x40(%r9,%r8,1)=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 8.02 =E2=94=82 vaddpd 0x80(%r9,%rcx,1),%zmm17,%zmm14=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.53 =E2=94=82 vmovapd %zmm14,%zmm16=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 0.05 =E2=94=82 vmovupd %zmm14,0x88(%r9,%rsi,1)=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 3.08 =E2=94=82 vpermt2pd %zmm15,%zmm13,%zmm16=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.41 =E2=94=82 vmulpd %zmm17,%zmm21,%zmm15=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 0.20 =E2=94=82 vmovupd %zmm15,0x80(%r9,%rcx,1)=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 1.60 =E2=94=82 vmulpd %zmm21,%zmm16,%zmm15=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 1.16 =E2=94=82 vmovupd %zmm15,0x80(%r9,%r8,1)=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 3.13 =E2=94=82 add $0xc0,%r9=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20 =E2=94=82 cmp $0x3e7c0,%r9=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20 0.03 =E2=94=82 =E2=86=91 jne a0=20=20=20=20=20=20=20 So a forward-dependency here?=