| 262 | PacketSize = internal::unpacket_traits<PacketType>::size |
| 263 | }; |
| 264 | static void run() |
| 265 | { |
| 266 | |
| 267 | typedef Matrix<Scalar,PacketSize,1> Vector1; |
| 268 | typedef Matrix<Scalar,PacketSize,PacketSize> Matrix11; |
| 269 | typedef Matrix<Scalar,5*PacketSize,7,ColMajor> Matrix57; |
| 270 | typedef Matrix<Scalar,3*PacketSize,5,ColMajor> Matrix35; |
| 271 | typedef Matrix<Scalar,5*PacketSize,7,DontAlign|ColMajor> Matrix57u; |
| 272 | // typedef Matrix<Scalar,(Matrix11::Flags&RowMajorBit)?16:4*PacketSize,(Matrix11::Flags&RowMajorBit)?4*PacketSize:16> Matrix44; |
| 273 | // typedef Matrix<Scalar,(Matrix11::Flags&RowMajorBit)?16:4*PacketSize,(Matrix11::Flags&RowMajorBit)?4*PacketSize:16,DontAlign|EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION> Matrix44u; |
| 274 | // typedef Matrix<Scalar,4*PacketSize,4*PacketSize,ColMajor> Matrix44c; |
| 275 | // typedef Matrix<Scalar,4*PacketSize,4*PacketSize,RowMajor> Matrix44r; |
| 276 | |
| 277 | typedef Matrix<Scalar, |
| 278 | (PacketSize==8 ? 4 : PacketSize==4 ? 2 : PacketSize==2 ? 1 : /*PacketSize==1 ?*/ 1), |
| 279 | (PacketSize==8 ? 2 : PacketSize==4 ? 2 : PacketSize==2 ? 2 : /*PacketSize==1 ?*/ 1) |
| 280 | > Matrix1; |
| 281 | |
| 282 | typedef Matrix<Scalar, |
| 283 | (PacketSize==8 ? 4 : PacketSize==4 ? 2 : PacketSize==2 ? 1 : /*PacketSize==1 ?*/ 1), |
| 284 | (PacketSize==8 ? 2 : PacketSize==4 ? 2 : PacketSize==2 ? 2 : /*PacketSize==1 ?*/ 1), |
| 285 | DontAlign|((Matrix1::Flags&RowMajorBit)?RowMajor:ColMajor)> Matrix1u; |
| 286 | |
| 287 | // this type is made such that it can only be vectorized when viewed as a linear 1D vector |
| 288 | typedef Matrix<Scalar, |
| 289 | (PacketSize==8 ? 4 : PacketSize==4 ? 6 : PacketSize==2 ? ((Matrix11::Flags&RowMajorBit)?2:3) : /*PacketSize==1 ?*/ 1), |
| 290 | (PacketSize==8 ? 6 : PacketSize==4 ? 2 : PacketSize==2 ? ((Matrix11::Flags&RowMajorBit)?3:2) : /*PacketSize==1 ?*/ 3) |
| 291 | > Matrix3; |
| 292 | |
| 293 | #if !EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT |
| 294 | VERIFY(test_assign(Vector1(),Vector1(), |
| 295 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 296 | VERIFY(test_assign(Vector1(),Vector1()+Vector1(), |
| 297 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 298 | VERIFY(test_assign(Vector1(),Vector1().template segment<PacketSize>(0).derived(), |
| 299 | EIGEN_UNALIGNED_VECTORIZE ? InnerVectorizedTraversal : LinearVectorizedTraversal,CompleteUnrolling)); |
| 300 | VERIFY(test_assign(Vector1(),Scalar(2.1)*Vector1()-Vector1(), |
| 301 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 302 | VERIFY(test_assign(Vector1(),(Scalar(2.1)*Vector1().template segment<PacketSize>(0)-Vector1().template segment<PacketSize>(0)).derived(), |
| 303 | EIGEN_UNALIGNED_VECTORIZE ? InnerVectorizedTraversal : LinearVectorizedTraversal,CompleteUnrolling)); |
| 304 | VERIFY(test_assign(Vector1(),Vector1().cwiseProduct(Vector1()), |
| 305 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 306 | VERIFY(test_assign(Vector1(),Vector1().template cast<Scalar>(), |
| 307 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 308 | |
| 309 | |
| 310 | VERIFY(test_assign(Vector1(),Vector1(), |
| 311 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 312 | VERIFY(test_assign(Vector1(),Vector1()+Vector1(), |
| 313 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 314 | VERIFY(test_assign(Vector1(),Vector1().cwiseProduct(Vector1()), |
| 315 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 316 | |
| 317 | VERIFY(test_assign(Matrix57(),Matrix57()+Matrix57(), |
| 318 | InnerVectorizedTraversal,InnerUnrolling)); |
| 319 | |
| 320 | VERIFY(test_assign(Matrix57u(),Matrix57()+Matrix57(), |
| 321 | EIGEN_UNALIGNED_VECTORIZE ? InnerVectorizedTraversal : LinearTraversal, |
nothing calls this directly
no test coverage detected