[PATCH] [mips][msa] Added bitconverts for vector types for big and little-endian

Jack Carter Jack.Carter at imgtec.com
Fri Aug 23 13:16:19 PDT 2013


Ok, works for me as well now.

LGTM

Jack
________________________________
From: Daniel Sanders
Sent: Friday, August 23, 2013 8:14 AM
To: Jack Carter
Cc: llvm-commits at cs.uiuc.edu
Subject: RE: [PATCH] [mips][msa] Added bitconverts for vector types for big and little-endian

I've found the problem. There are two ways to produce the SHF_B instruction. The first is via an intrinsic (INTRINSIC_W_CHAIN), the second is via a bitcast (when compiling for big-endian MSA). These two patterns disagree on whether the OPFL_Chain flag should be set or not. TableGen is setting the OPFL_Chain flag which ultimately leads to an extra NULL operand being used when selecting code for the bitcast pattern.

When the "Few MSA Builtins have side-effects…" patch is also applied (which adds IntrNoMem to the intrinsic definition), both patterns agree that OPFL_Chain should not be set and the problem does not occur.

Sorry for not letting you know that the two patches were inter-dependant. Unfortunately I didn't realize that was the case. As we discussed offline, in future I'll specify a patch order to be on the safe side.

From: Daniel Sanders
Sent: 23 August 2013 12:57
To: Jack Carter
Cc: llvm-commits at cs.uiuc.edu
Subject: RE: [PATCH] [mips][msa] Added bitconverts for vector types for big and little-endian

I haven't fully debugged it yet but it seems that another of my pending patches ([mips][msa] Few MSA Builtins have side-effects. Added IntrNoMem to those that don't) prevents the error.

From: Jack Carter
Sent: 22 August 2013 21:07
To: Daniel Sanders
Cc: llvm-commits at cs.uiuc.edu
Subject: RE: [PATCH] [mips][msa] Added bitconverts for vector types for big and little-endian

Oops, I take that back.

make check fails with the test case for me.

Stack dump:
0.    Program arguments: /home/jcarter/workarea/assembler_jack/build/bin/./llc -march=mips -mattr=+msa
1.    Running pass 'Function Pass Manager' on module '<stdin>'.
2.    Running pass 'MIPS DAG->DAG Pattern Instruction Selection' on function '@v16i8_to_v8i16'

Failing Tests (1):
    LLVM :: CodeGen/Mips/msa/bitcast.ll

Jack
________________________________
From: Jack Carter
Sent: Thursday, August 22, 2013 1:00 PM
To: Daniel Sanders
Cc: llvm-commits at cs.uiuc.edu
Subject: RE: [PATCH] [mips][msa] Added bitconverts for vector types for big and little-endian
LGTM,

Jack
________________________________
From: Daniel Sanders
Sent: Wednesday, August 21, 2013 6:47 AM
To: Jack Carter
Cc: llvm-commits at cs.uiuc.edu
Subject: [PATCH] [mips][msa] Added bitconverts for vector types for big and little-endian


Daniel Sanders
Leading Software Design Engineer, MIPS Processor IP
Imagination Technologies Limited
www.imgtec.com<http://www.imgtec.com/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130823/0ad41757/attachment.html>


More information about the llvm-commits mailing list