URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
// { dg-do run }
|
// { dg-do run }
|
// { dg-options "-O2 -w" }
|
// { dg-options "-O2 -w" }
|
// egcs-bugs 1999-02-22 14:24 Stefan Schwarzer
|
// egcs-bugs 1999-02-22 14:24 Stefan Schwarzer
|
// sts@ica1.uni-stuttgart.de
|
// sts@ica1.uni-stuttgart.de
|
// optimizer problem in egcs <= 1.1.1
|
// optimizer problem in egcs <= 1.1.1
|
|
|
struct XTVec{
|
struct XTVec{
|
XTVec(){x[0]=x[1] =x[2] =0;}
|
XTVec(){x[0]=x[1] =x[2] =0;}
|
XTVec(int ax,int y=0.,int z=0.){x[0]=ax;x[1]=y; x[2]=z; }
|
XTVec(int ax,int y=0.,int z=0.){x[0]=ax;x[1]=y; x[2]=z; }
|
int& operator[](int);
|
int& operator[](int);
|
|
|
int x[3];
|
int x[3];
|
};
|
};
|
|
|
inline
|
inline
|
int & XTVec::operator[](int i){
|
int & XTVec::operator[](int i){
|
return x[i];
|
return x[i];
|
}
|
}
|
|
|
inline
|
inline
|
XTVec& operator+=(XTVec& lhs, XTVec& rhs){
|
XTVec& operator+=(XTVec& lhs, XTVec& rhs){
|
lhs[0]+=rhs[0];
|
lhs[0]+=rhs[0];
|
lhs[1]+=rhs[1];
|
lhs[1]+=rhs[1];
|
lhs[2]+=rhs[2];
|
lhs[2]+=rhs[2];
|
return lhs;
|
return lhs;
|
}
|
}
|
|
|
inline
|
inline
|
XTVec operator+(XTVec& lhs, XTVec& rhs){
|
XTVec operator+(XTVec& lhs, XTVec& rhs){
|
XTVec result(lhs);
|
XTVec result(lhs);
|
return result += rhs;
|
return result += rhs;
|
}
|
}
|
|
|
int main()
|
int main()
|
{
|
{
|
XTVec ur(4.,0.,1.);
|
XTVec ur(4.,0.,1.);
|
XTVec ll(0.,2.,0.);
|
XTVec ll(0.,2.,0.);
|
XTVec initsum(ur + ll);
|
XTVec initsum(ur + ll);
|
|
|
// sum of components should be 7
|
// sum of components should be 7
|
return (initsum[0] + initsum[1] + initsum[2] - 7);
|
return (initsum[0] + initsum[1] + initsum[2] - 7);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.