Fix transpose2x4().
Change-Id: I079991d257be4aa00a0aef938ccf0110cd005bcd
Reviewed-on: https://swiftshader-review.googlesource.com/8288
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Shader/ShaderCore.cpp b/src/Shader/ShaderCore.cpp
index be1ca2e..338ea08 100644
--- a/src/Shader/ShaderCore.cpp
+++ b/src/Shader/ShaderCore.cpp
@@ -475,18 +475,13 @@
void transpose2x4(Float4 &row0, Float4 &row1, Float4 &row2, Float4 &row3)
{
- row0 = UnpackLow(row0, row1);
- row1 = Float4(row0.zw, row1.zw);
- row2 = UnpackHigh(row0, row1);
- row3 = Float4(row2.zw, row3.zw);
- }
+ Float4 tmp01 = UnpackLow(row0, row1);
+ Float4 tmp23 = UnpackHigh(row0, row1);
- void transpose2x4h(Float4 &row0, Float4 &row1, Float4 &row2, Float4 &row3)
- {
- row0 = UnpackLow(row2, row3);
- row1 = Float4(row0.zw, row1.zw);
- row2 = UnpackHigh(row2, row3);
- row3 = Float4(row2.zw, row3.zw);
+ row0 = tmp01;
+ row1 = Float4(tmp01.zw, row1.zw);
+ row2 = tmp23;
+ row3 = Float4(tmp23.zw, row3.zw);
}
void transpose4xN(Float4 &row0, Float4 &row1, Float4 &row2, Float4 &row3, int N)