| 103 | HalfPacketSize = internal::unpacket_traits<HalfPacketType>::size |
| 104 | }; |
| 105 | static void run() |
| 106 | { |
| 107 | |
| 108 | typedef Matrix<Scalar,PacketSize,1> Vector1; |
| 109 | typedef Matrix<Scalar,Dynamic,1> VectorX; |
| 110 | typedef Matrix<Scalar,Dynamic,Dynamic> MatrixXX; |
| 111 | typedef Matrix<Scalar,PacketSize,PacketSize> Matrix11; |
| 112 | typedef Matrix<Scalar,2*PacketSize,2*PacketSize> Matrix22; |
| 113 | typedef Matrix<Scalar,(Matrix11::Flags&RowMajorBit)?16:4*PacketSize,(Matrix11::Flags&RowMajorBit)?4*PacketSize:16> Matrix44; |
| 114 | typedef Matrix<Scalar,(Matrix11::Flags&RowMajorBit)?16:4*PacketSize,(Matrix11::Flags&RowMajorBit)?4*PacketSize:16,DontAlign|EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION> Matrix44u; |
| 115 | typedef Matrix<Scalar,4*PacketSize,4*PacketSize,ColMajor> Matrix44c; |
| 116 | typedef Matrix<Scalar,4*PacketSize,4*PacketSize,RowMajor> Matrix44r; |
| 117 | |
| 118 | typedef Matrix<Scalar, |
| 119 | (PacketSize==8 ? 4 : PacketSize==4 ? 2 : PacketSize==2 ? 1 : /*PacketSize==1 ?*/ 1), |
| 120 | (PacketSize==8 ? 2 : PacketSize==4 ? 2 : PacketSize==2 ? 2 : /*PacketSize==1 ?*/ 1) |
| 121 | > Matrix1; |
| 122 | |
| 123 | typedef Matrix<Scalar, |
| 124 | (PacketSize==8 ? 4 : PacketSize==4 ? 2 : PacketSize==2 ? 1 : /*PacketSize==1 ?*/ 1), |
| 125 | (PacketSize==8 ? 2 : PacketSize==4 ? 2 : PacketSize==2 ? 2 : /*PacketSize==1 ?*/ 1), |
| 126 | DontAlign|((Matrix1::Flags&RowMajorBit)?RowMajor:ColMajor)> Matrix1u; |
| 127 | |
| 128 | // this type is made such that it can only be vectorized when viewed as a linear 1D vector |
| 129 | typedef Matrix<Scalar, |
| 130 | (PacketSize==8 ? 4 : PacketSize==4 ? 6 : PacketSize==2 ? ((Matrix11::Flags&RowMajorBit)?2:3) : /*PacketSize==1 ?*/ 1), |
| 131 | (PacketSize==8 ? 6 : PacketSize==4 ? 2 : PacketSize==2 ? ((Matrix11::Flags&RowMajorBit)?3:2) : /*PacketSize==1 ?*/ 3) |
| 132 | > Matrix3; |
| 133 | |
| 134 | #if !EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT |
| 135 | VERIFY(test_assign(Vector1(),Vector1(), |
| 136 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 137 | VERIFY(test_assign(Vector1(),Vector1()+Vector1(), |
| 138 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 139 | VERIFY(test_assign(Vector1(),Vector1().cwiseProduct(Vector1()), |
| 140 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 141 | VERIFY(test_assign(Vector1(),Vector1().template cast<Scalar>(), |
| 142 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 143 | |
| 144 | |
| 145 | VERIFY(test_assign(Vector1(),Vector1(), |
| 146 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 147 | VERIFY(test_assign(Vector1(),Vector1()+Vector1(), |
| 148 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 149 | VERIFY(test_assign(Vector1(),Vector1().cwiseProduct(Vector1()), |
| 150 | InnerVectorizedTraversal,CompleteUnrolling)); |
| 151 | |
| 152 | VERIFY(test_assign(Matrix44(),Matrix44()+Matrix44(), |
| 153 | InnerVectorizedTraversal,InnerUnrolling)); |
| 154 | |
| 155 | VERIFY(test_assign(Matrix44u(),Matrix44()+Matrix44(), |
| 156 | EIGEN_UNALIGNED_VECTORIZE ? InnerVectorizedTraversal : LinearTraversal, |
| 157 | EIGEN_UNALIGNED_VECTORIZE ? InnerUnrolling : NoUnrolling)); |
| 158 | |
| 159 | VERIFY(test_assign(Matrix1(),Matrix1()+Matrix1(), |
| 160 | (Matrix1::InnerSizeAtCompileTime % PacketSize)==0 ? InnerVectorizedTraversal : LinearVectorizedTraversal, |
| 161 | CompleteUnrolling)); |
| 162 |
nothing calls this directly
no test coverage detected