const mic_i pID(primID); const mic_i gID(geomID); const float *__restrict__ const vptr0_t0 = (float*)&mesh->vertex(tri.v[0]); const float *__restrict__ const vptr1_t0 = (float*)&mesh->vertex(tri.v[1]); const float *__restrict__ const vptr2_t0 = (float*)&mesh->vertex(tri.v[2]); prefetch<PFHINT_L1>(vptr1_t0); prefetch<PFHINT_L1>(vptr2_t0); const mic_f v0_t0 = broadcast4to16f(vptr0_t0); const mic_f v1_t0 = broadcast4to16f(vptr1_t0); const mic_f v2_t0 = broadcast4to16f(vptr2_t0); const mic_f tri_accel_t0 = initTriangle1(v0_t0,v1_t0,v2_t0,gID,pID,mic_i(mesh->mask)); store16f_ngo(&acc->t0,tri_accel_t0); if ((int)mesh->numTimeSteps == 1) { store16f_ngo(&acc->t1,tri_accel_t0); } else { assert( (int)mesh->numTimeSteps == 2 ); const float *__restrict__ const vptr0_t1 = (float*)&mesh->vertex(tri.v[0],1); const float *__restrict__ const vptr1_t1 = (float*)&mesh->vertex(tri.v[1],1); const float *__restrict__ const vptr2_t1 = (float*)&mesh->vertex(tri.v[2],1); const mic_f v0_t1 = broadcast4to16f(vptr0_t1);
} __forceinline void computeAccelerationDataMB(const unsigned int &geomID, const unsigned int &primID, const Scene *__restrict__ const scene, BVH4mb::Triangle01 * __restrict__ const acc) { const TriangleMesh* __restrict__ const mesh = scene->getTriangleMesh(geomID); const TriangleMesh::Triangle & tri = mesh->triangle(primID); const mic_i pID(primID); const mic_i gID(geomID); const mic3f v_t0 = mesh->getTriangleVertices<PFHINT_L1>(tri); const mic_f tri_accel_t0 = initTriangle1(v_t0[0],v_t0[1],v_t0[2],gID,pID,mic_i(mesh->mask)); store16f_ngo(&acc->t0,tri_accel_t0); if ((int)mesh->numTimeSteps == 1) { store16f_ngo(&acc->t1,tri_accel_t0); } else { assert( (int)mesh->numTimeSteps == 2 ); const mic3f v_t1 = mesh->getTriangleVertices<PFHINT_L1>(tri,1); const mic_f tri_accel_t1 = initTriangle1(v_t1[0],v_t1[1],v_t1[2],gID,pID,mic_i(mesh->mask)); store16f_ngo(&acc->t1,tri_accel_t1);