dEQP-GLES2.functional.shaders.loops.for_dynamic_iterations.mixed_break_continue_vertex,Fail
dEQP-GLES2.functional.shaders.loops.for_uniform_iterations.mixed_break_continue_vertex,Fail
-dEQP-GLES2.functional.shaders.operator.geometric.reflect.highp_vec2_fragment,Fail
-dEQP-GLES2.functional.shaders.operator.geometric.reflect.highp_vec3_fragment,Fail
-dEQP-GLES2.functional.shaders.operator.geometric.reflect.highp_vec4_fragment,Fail
-dEQP-GLES2.functional.shaders.operator.geometric.reflect.mediump_vec2_fragment,Fail
-dEQP-GLES2.functional.shaders.operator.geometric.reflect.mediump_vec3_fragment,Fail
-dEQP-GLES2.functional.shaders.operator.geometric.reflect.mediump_vec4_fragment,Fail
-
dEQP-GLES2.functional.shaders.return.return_in_dynamic_loop_dynamic_vertex,Fail
dEQP-GLES2.functional.shaders.random.texture.fragment.141,Fail
*
*/
+#include "util/u_math.h"
+
#include "radeon_dataflow.h"
#include "radeon_compiler.h"
return 0;
}
- /* Rewrite the instructions */
writemask_sum = rc_variable_writemask_sum(writer_list->Item);
+
+ /* rc_normal_rewrite_writemask can't expand a previous writemask to store
+ * more channels replicated.
+ */
+ if (util_bitcount(writemask_sum) < util_bitcount(inst_mul->U.I.DstReg.WriteMask))
+ return 0;
+
+ /* Rewrite the instructions */
for (var = writer_list->Item; var; var = var->Friend) {
struct rc_variable * writer = var;
unsigned conversion_swizzle = rc_make_conversion_swizzle(