From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15201 invoked by alias); 23 Apr 2007 14:27:35 -0000 Received: (qmail 15159 invoked by uid 48); 23 Apr 2007 14:27:25 -0000 Date: Mon, 23 Apr 2007 14:27:00 -0000 Subject: [Bug tree-optimization/31667] New: Integer externsions aren't vectorized X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjl at lucon dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-04/txt/msg01678.txt.bz2 SSE4.1 has pmovzx and pmovsx. For code like: [hjl@gnu-2 vect]$ cat pmovzxbw.c typedef unsigned char vec_t; typedef unsigned short vecx_t; extern __attribute__((aligned(16))) vec_t x [64]; extern __attribute__((aligned(16))) vecx_t y [64]; void foo () { int i; for (i = 0; i < 64; i++) y [i] = x [i]; } Icc generates pmovzxbw x(%rip), %xmm0 #13.14 pmovzxbw 8+x(%rip), %xmm1 #13.14 pmovzxbw 16+x(%rip), %xmm2 #13.14 pmovzxbw 24+x(%rip), %xmm3 #13.14 pmovzxbw 32+x(%rip), %xmm4 #13.14 pmovzxbw 40+x(%rip), %xmm5 #13.14 pmovzxbw 48+x(%rip), %xmm6 #13.14 pmovzxbw 56+x(%rip), %xmm7 #13.14 movdqa %xmm0, y(%rip) #13.5 movdqa %xmm1, 16+y(%rip) #13.5 movdqa %xmm2, 32+y(%rip) #13.5 movdqa %xmm3, 48+y(%rip) #13.5 movdqa %xmm4, 64+y(%rip) #13.5 movdqa %xmm5, 80+y(%rip) #13.5 movdqa %xmm6, 96+y(%rip) #13.5 movdqa %xmm7, 112+y(%rip) #13.5 ret #14.1 -- Summary: Integer externsions aren't vectorized Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl at lucon dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31667