<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal-compose;
        font-family:"Tahoma","sans-serif";
        color:black;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black">> clang -S test.c -o test.msa.mips.s --target=mips-pc-linux-gnu -mmsa -mfp64 -mfloat-abi=hard -mcpu=mips32 -fslp-vectorize-aggressive  -fslp-vectorize-aggressive
 -fslp-vectorize -fvectorize -fno-lax-vector-conversions -O3<br>
<br>
'-mcpu=mips32' should be '-mcpu=mips32r2' but even with that it doesn't vectorize your case. We haven't implemented TargetTransformInfo yet so we only get a very small amount of vectorization at the moment. As a quick experiment this afternoon, I tried a small
 implementation that only reports the number of vector registers and their width. This seems to make a significant improvement to some of the tests in SingleSource/UnitTests/Vector but makes your test case considerably worse. We'll have to find time to implement
 a proper TargetTransformInfo.<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black">Also, you mentioned you were using clang 3.5 on another part of this thread. The 64-bit MIPS ABI's had a lot of bugs around that time, IIRC the majority of them
 were fixed in 3.5.1 and a couple rarer ones were fixed in 3.5.2 and 3.6.0.<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black"><o:p> </o:p></span></p>
</div>
<div>
<div class="MsoNormal" align="center" style="text-align:center"><span style="color:black">
<hr size="2" width="100%" align="center">
</span></div>
<div id="divRpF374647">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black"> Rail Shafigulin [rail@esenciatech.com]<br>
<b>Sent:</b> 14 March 2016 18:19<br>
<b>To:</b> Daniel Sanders<br>
<b>Cc:</b> Joerg Sonnenberger; llvm-dev<br>
<b>Subject:</b> Re: [llvm-dev] clang triple and clang target</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:black">On Mon, Mar 14, 2016 at 8:27 AM, Daniel Sanders <<a href="mailto:Daniel.Sanders@imgtec.com" target="_blank">Daniel.Sanders@imgtec.com</a>> wrote:<o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black">>
</span><span style="color:black">I need to see how they look, whether it is ARM, Mips or X86.<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">The Mips triples you're most likely to need are:<o:p></o:p></span></p>
<p><span style="font-family:Symbol;color:black">·</span><span style="font-size:7.0pt;color:black">        
</span><span style="color:black">mips-linux-gnu – 32-bit big-endian on GNU/Linux<o:p></o:p></span></p>
<p><span style="font-family:Symbol;color:black">·</span><span style="font-size:7.0pt;color:black">        
</span><span style="color:black">mipsel-linux-gnu – 32-bit little-endian on GNU/Linux<o:p></o:p></span></p>
<p><span style="font-family:Symbol;color:black">·</span><span style="font-size:7.0pt;color:black">        
</span><span style="color:black">mips64-linux-gnu – 64-bit big-endian on GNU/Linux<o:p></o:p></span></p>
<p><span style="font-family:Symbol;color:black">·</span><span style="font-size:7.0pt;color:black">        
</span><span style="color:black">mips64el-linux-gnu – 64-bit little-endian on GNU/Linux<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">I should mention that Mips has quite a few triple-related bugs but if you're just looking at assembly the one you're most likely to encounter is that mips-*/mipsel-*
 only work for 32-bit subtargets and mips64-*/mips64el-* only work for 64-bit subtargets. If you don't match them up correctly then you'll either get an assertion from the code generator or a crash. This isn't supposed to be the case but there's been some unfortunate
 misunderstandings about GNU triples and Clang triples (they're not quite the same thing) that are difficult to resolve.<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">Daniel,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">Thanks for the response. I tried using the option you recommended but for some reason I didn't see any vector instructions in the output. Can you explain what am I doing wrong? Here is the command line I ran<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">clang -S test.c -o test.msa.mips.s --target=mips-pc-linux-gnu -mmsa -mfp64 -mfloat-abi=hard -mcpu=mips32 -fslp-vectorize-aggressive  -fslp-vectorize-aggressive -fslp-vectorize -fvectorize -fno-lax-vector-conversions
 -O3<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">I'm attaching test.c as well as test.msa.mips.s so you could see input as well as output.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">Any help is appreciated.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>