From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16649 invoked by alias); 21 Jun 2005 12:04:52 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 16615 invoked by uid 48); 21 Jun 2005 12:04:42 -0000 Date: Tue, 21 Jun 2005 12:04:00 -0000 Message-ID: <20050621120442.16614.qmail@sourceware.org> From: "uros at kss-loka dot si" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050615123954.22076.uros@kss-loka.si> References: <20050615123954.22076.uros@kss-loka.si> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug target/22076] Strange code for MMX register moves X-Bugzilla-Reason: CC X-SW-Source: 2005-06/txt/msg02712.txt.bz2 List-Id: ------- Additional Comments From uros at kss-loka dot si 2005-06-21 12:04 ------- New testcase (everything is initialized this time): --cut here-- #include __v8qi test () { __v8qi mm0 = {1,2,3,4,5,6,7,8}; __v8qi mm1 = {11,22,33,44,55,66,77,88}; volatile __m64 x; x = _mm_add_pi8 (mm0, mm1); return x; } --cut here-- Pass 0 Register 67 costs: AD_REGS:4000 Q_REGS:4000 NON_Q_REGS:4000 INDEX_REGS:4000 LEGACY_REGS:4000 GENERAL_REGS:4000 MMX_REGS:46000 INT_SSE_REGS:38000 MEM:16000 Register 67 pref GENERAL_REGS or none Pass 1 Register 67 costs: AD_REGS:4000 Q_REGS:4000 NON_Q_REGS:4000 INDEX_REGS:4000 LEGACY_REGS:4000 GENERAL_REGS:4000 MMX_REGS:46000 INT_SSE_REGS:38000 MEM:16000 69 registers. ... (insn:HI 18 45 22 1 (set (reg:V8QI 67) (mem/u/i:V8QI (symbol_ref/u:SI ("*.LC2") [flags 0x2]) [0 S8 A64])) 766 {*movv8qi_internal} (nil) (expr_list:REG_EQUIV (const_vector:V8QI [ (const_int 12 [0xc]) (const_int 24 [0x18]) (const_int 36 [0x24]) (const_int 48 [0x30]) (const_int 60 [0x3c]) (const_int 72 [0x48]) (const_int 84 [0x54]) (const_int 96 [0x60]) ]) (nil))) ... test: pushl %ebp movl %esp, %ebp subl $24, %esp movl $807671820, %eax movl $1616136252, %edx movl %eax, -8(%ebp) movl %edx, -4(%ebp) movl -8(%ebp), %eax movl -4(%ebp), %edx movl %eax, -24(%ebp) movl %edx, -20(%ebp) movq -24(%ebp), %mm1 leave movq %mm1, %mm0 ret -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22076