llvm patch

Jan Hranac hranac at codasip.com
Mon Jul 27 02:54:26 PDT 2015


Thank you for your reply.
The problem is that the original testcase (which includes an indirect 
specification of an architecture) is an intelectual property of Codasip 
(codasip.com) and of our customers. Hence, I'm rather bound by various 
NDAs.
However, I can tell you that it occurred when there was a legal type 
v2i16 (with legal load/store operations) in an architecture. I'm 
including an edited fragment of a test application (please do not 
publish this). The loop needs to be vectorized in middle-end. The arrays 
will keep their aligment=2 which will lead to a call of 
ExpandUnalignedLoad on a v2i16 load.
I apologize for the complication and thank you for your patience.

On 25/07/15 18:35, Matt Arsenault wrote:
>> On Jul 23, 2015, at 10:51 PM, Jan Hranac <hranac at codasip.com> wrote:
>>
>> The attached patch fixes loss of chaining in ExpandUnalignedLoad for legal (but unaligned) vectors and floats. The function was returning an input chain, not an output one in that case.
>> <patch.txt>_______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> LGTM. Do you have a testcase you can add which breaks from this?

-------------- next part --------------
short a1[128];
short a2[128];

int main(void)
{
  for (int i=0; i<32; i++)
  {
    short temp;
    
    temp = a1[i];
    a1[i] =  a1[i+32];
    a1[i+32] = temp;
    
    temp = a2[i];
    a2[i] =  a2[i+32];
    a2[i+32] = temp;
  }
  return 0;
}




More information about the llvm-commits mailing list