This repository was archived by the owner on Feb 5, 2019. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +11
-7
lines changed Expand file tree Collapse file tree 1 file changed +11
-7
lines changed Original file line number Diff line number Diff line change @@ -844,21 +844,25 @@ void NeonEmitter::run(raw_ostream &OS) {
844
844
845
845
// Emit vector typedefs.
846
846
for (unsigned i = 0 , e = TDTypeVec.size (); i != e; ++i) {
847
- bool dummy, quad = false ;
848
- (void ) ClassifyType (TDTypeVec[i], quad, dummy, dummy);
849
- OS << " typedef __attribute__(( __vector_size__(" ;
847
+ bool dummy, quad = false , poly = false ;
848
+ (void ) ClassifyType (TDTypeVec[i], quad, poly, dummy);
849
+ if (poly)
850
+ OS << " typedef __attribute__((neon_polyvector_type(" ;
851
+ else
852
+ OS << " typedef __attribute__((neon_vector_type(" ;
850
853
851
- OS << utostr (8 *(quad ? 2 : 1 )) << " ) )) " ;
852
- if (!quad)
854
+ unsigned nElts = GetNumElements (TDTypeVec[i], quad);
855
+ OS << utostr (nElts) << " ))) " ;
856
+ if (nElts < 10 )
853
857
OS << " " ;
854
858
855
859
OS << TypeString (' s' , TDTypeVec[i]);
856
860
OS << " " << TypeString (' d' , TDTypeVec[i]) << " ;\n " ;
857
861
}
858
862
OS << " \n " ;
859
- OS << " typedef __attribute__(( __vector_size__(8) )) "
863
+ OS << " typedef __attribute__((__vector_size__(8))) "
860
864
" double float64x1_t;\n " ;
861
- OS << " typedef __attribute__(( __vector_size__(16) )) "
865
+ OS << " typedef __attribute__((__vector_size__(16))) "
862
866
" double float64x2_t;\n " ;
863
867
OS << " \n " ;
864
868
You can’t perform that action at this time.
0 commit comments