Gallivm: cleanup soa storage.
authorStephane Marchesin <marchesin@icps.u-strasbg.fr>
Thu, 9 Oct 2008 21:32:01 +0000 (23:32 +0200)
committerStephane Marchesin <marchesin@icps.u-strasbg.fr>
Thu, 9 Oct 2008 21:32:01 +0000 (23:32 +0200)
src/gallium/auxiliary/gallivm/soabuiltins.c
src/gallium/auxiliary/gallivm/storagesoa.cpp

index cb85e1734ec2e84db053408a6d678dac9d81df7e..b20f3c496302da449c1c468ac909b47feb78929d 100644 (file)
@@ -167,7 +167,6 @@ void min(float4 *res,
    res[3] = minvec(tmp0w, tmp1w);
 }
 
-
 void max(float4 *res,
          float4 tmp0x, float4 tmp0y, float4 tmp0z, float4 tmp0w,
          float4 tmp1x, float4 tmp1y, float4 tmp1z, float4 tmp1w)
index d4ecf97c36d0d3c13512bdfed2fd3d09856c952d..4fc075cf6d4ad6d5d904400b3f6edc4a3b3813f6 100644 (file)
@@ -91,29 +91,19 @@ void StorageSoa::declareImmediates()
    for (unsigned int i = 0; i < m_immediatesToFlush.size(); ++i) {
       std::vector<float> vec = m_immediatesToFlush[i];
       std::vector<float> vals(4);
-      float val;
       std::vector<Constant*> channelArray;
 
-      val = vec[0];
-      llvm::Constant *xChannel = createConstGlobalFloat(val);
-      val = vec[1];
-      llvm::Constant *yChannel = createConstGlobalFloat(val);
-      val = vec[2];
-      llvm::Constant *zChannel = createConstGlobalFloat(val);
-      val = vec[3];
-      llvm::Constant *wChannel = createConstGlobalFloat(val);
+      vals[0] = vec[0]; vals[1] = vec[1]; vals[2] = vec[2]; vals[3] = vec[3];
+      llvm::Constant *xChannel = createConstGlobalVector(vals);
 
-//      vals[0] = vec[0]; vals[1] = vec[1]; vals[2] = vec[2]; vals[3] = vec[3];
-//      llvm::Constant *xChannel = createConstGlobalVector(vec[0]);
-
-/*      vals[0] = vec[1]; vals[1] = vec[1]; vals[2] = vec[1]; vals[3] = vec[1];
+      vals[0] = vec[1]; vals[1] = vec[1]; vals[2] = vec[1]; vals[3] = vec[1];
       llvm::Constant *yChannel = createConstGlobalVector(vals);
 
       vals[0] = vec[2]; vals[1] = vec[2]; vals[2] = vec[2]; vals[3] = vec[2];
       llvm::Constant *zChannel = createConstGlobalVector(vals);
 
       vals[0] = vec[3]; vals[1] = vec[3]; vals[2] = vec[3]; vals[3] = vec[3];
-      llvm::Constant *wChannel = createConstGlobalVector(vals);*/
+      llvm::Constant *wChannel = createConstGlobalVector(vals);
       channelArray.push_back(xChannel);
       channelArray.push_back(yChannel);
       channelArray.push_back(zChannel);
@@ -177,29 +167,18 @@ llvm::Value* StorageSoa::unpackConstElement(llvm::IRBuilder<>* m_builder, llvm::
 
 std::vector<llvm::Value*> StorageSoa::constElement(llvm::IRBuilder<>* m_builder, llvm::Value *idx)
 {
-   std::vector<llvm::Value*> res(4);
+   llvm::Value* res;
    std::vector<llvm::Value*> res2(4);
    llvm::Value *xChannel, *yChannel, *zChannel, *wChannel;
 
    xChannel = elementPointer(m_consts, idx, 0);
-/*   yChannel = elementPointer(m_consts, idx, 1);
-   zChannel = elementPointer(m_consts, idx, 2);
-   wChannel = elementPointer(m_consts, idx, 3);*/
-
-   res[0] = alignedArrayLoad(xChannel);
-/* res[1] = alignedArrayLoad(xChannel);
-   res[2] = alignedArrayLoad(xChannel);
-   res[3] = alignedArrayLoad(xChannel);*/
-
-
-   res2[0]=unpackConstElement(m_builder, res[0],0);
-   res2[1]=unpackConstElement(m_builder, res[0],1);
-   res2[2]=unpackConstElement(m_builder, res[0],2);
-   res2[3]=unpackConstElement(m_builder, res[0],3);
-/*res[0] = alignedArrayLoad(xChannel);
-   res[1] = alignedArrayLoad(yChannel);
-   res[2] = alignedArrayLoad(zChannel);
-   res[3] = alignedArrayLoad(wChannel);*/
+
+   res = alignedArrayLoad(xChannel);
+
+   res2[0]=unpackConstElement(m_builder, res,0);
+   res2[1]=unpackConstElement(m_builder, res,1);
+   res2[2]=unpackConstElement(m_builder, res,2);
+   res2[3]=unpackConstElement(m_builder, res,3);
 
    return res2;
 }