Back to home page

Project CMSSW displayed by LXR

 
 

    


Warning, /RecoTracker/MkFitCore/standalone/CFMatrix33Vector3.ah is written in an unsupported language. File is not indexed.

0001 #ifdef MPLEX_INTRINSICS
0002 
0003    for (int n = 0; n < N; n += MPLEX_INTRINSICS_WIDTH_BYTES / sizeof(T))
0004    {
0005       IntrVec_t a_0 = LD(a, 0);
0006       IntrVec_t b_0 = LD(b, 0);
0007       IntrVec_t c_0 = MUL(a_0, b_0);
0008 
0009       IntrVec_t a_1 = LD(a, 1);
0010       IntrVec_t b_1 = LD(b, 1);
0011       c_0 = FMA(a_1, b_1, c_0);
0012 
0013       IntrVec_t a_2 = LD(a, 2);
0014       IntrVec_t b_2 = LD(b, 2);
0015       c_0 = FMA(a_2, b_2, c_0);
0016 
0017       IntrVec_t a_3 = LD(a, 3);
0018       IntrVec_t c_1 = MUL(a_3, b_0);
0019 
0020       IntrVec_t a_4 = LD(a, 4);
0021       c_1 = FMA(a_4, b_1, c_1);
0022       ST(c, 0, c_0);
0023 
0024       IntrVec_t a_5 = LD(a, 5);
0025       c_1 = FMA(a_5, b_2, c_1);
0026 
0027       IntrVec_t a_6 = LD(a, 6);
0028       IntrVec_t c_2 = MUL(a_6, b_0);
0029 
0030       IntrVec_t a_7 = LD(a, 7);
0031       c_2 = FMA(a_7, b_1, c_2);
0032       ST(c, 1, c_1);
0033 
0034       IntrVec_t a_8 = LD(a, 8);
0035       c_2 = FMA(a_8, b_2, c_2);
0036       ST(c, 2, c_2);
0037    }
0038 
0039 #else
0040 
0041 #pragma omp simd
0042    for (int n = 0; n < N; ++n)
0043    {
0044       c[ 0*N+n] = a[ 0*N+n]*b[ 0*N+n] + a[ 1*N+n]*b[ 1*N+n] + a[ 2*N+n]*b[ 2*N+n];
0045       c[ 1*N+n] = a[ 3*N+n]*b[ 0*N+n] + a[ 4*N+n]*b[ 1*N+n] + a[ 5*N+n]*b[ 2*N+n];
0046       c[ 2*N+n] = a[ 6*N+n]*b[ 0*N+n] + a[ 7*N+n]*b[ 1*N+n] + a[ 8*N+n]*b[ 2*N+n];
0047    }
0048 #endif