i965: Allow int64 conversion operations in channel_expressions
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 2 Feb 2017 22:56:23 +0000 (14:56 -0800)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Thu, 9 Feb 2017 09:18:34 +0000 (10:18 +0100)
This fixes 143 of the new piglit tests added by Nicolai

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp

index 45934bc..5d89988 100644 (file)
@@ -232,6 +232,10 @@ ir_channel_expressions_visitor::visit_leave(ir_assignment *ir)
    case ir_unop_bitcast_f2i:
    case ir_unop_bitcast_f2u:
    case ir_unop_bitcast_u2f:
+   case ir_unop_bitcast_u642d:
+   case ir_unop_bitcast_i642d:
+   case ir_unop_bitcast_d2u64:
+   case ir_unop_bitcast_d2i64:
    case ir_unop_i2u:
    case ir_unop_u2i:
    case ir_unop_f2i:
@@ -249,6 +253,26 @@ ir_channel_expressions_visitor::visit_leave(ir_assignment *ir)
    case ir_unop_d2u:
    case ir_unop_u2d:
    case ir_unop_d2b:
+   case ir_unop_i642i:
+   case ir_unop_u642i:
+   case ir_unop_i642u:
+   case ir_unop_u642u:
+   case ir_unop_i642b:
+   case ir_unop_i642f:
+   case ir_unop_u642f:
+   case ir_unop_i642d:
+   case ir_unop_u642d:
+   case ir_unop_i2i64:
+   case ir_unop_u2i64:
+   case ir_unop_b2i64:
+   case ir_unop_f2i64:
+   case ir_unop_d2i64:
+   case ir_unop_i2u64:
+   case ir_unop_u2u64:
+   case ir_unop_f2u64:
+   case ir_unop_d2u64:
+   case ir_unop_u642i64:
+   case ir_unop_i642u64:
    case ir_unop_trunc:
    case ir_unop_ceil:
    case ir_unop_floor:
@@ -443,30 +467,6 @@ ir_channel_expressions_visitor::visit_leave(ir_assignment *ir)
    case ir_unop_vote_any:
    case ir_unop_vote_all:
    case ir_unop_vote_eq:
-   case ir_unop_bitcast_u642d:
-   case ir_unop_bitcast_i642d:
-   case ir_unop_bitcast_d2u64:
-   case ir_unop_bitcast_d2i64:
-   case ir_unop_i642i:
-   case ir_unop_u642i:
-   case ir_unop_i642u:
-   case ir_unop_u642u:
-   case ir_unop_i642b:
-   case ir_unop_i642f:
-   case ir_unop_u642f:
-   case ir_unop_i642d:
-   case ir_unop_u642d:
-   case ir_unop_i2i64:
-   case ir_unop_u2i64:
-   case ir_unop_b2i64:
-   case ir_unop_f2i64:
-   case ir_unop_d2i64:
-   case ir_unop_i2u64:
-   case ir_unop_u2u64:
-   case ir_unop_f2u64:
-   case ir_unop_d2u64:
-   case ir_unop_u642i64:
-   case ir_unop_i642u64:
    case ir_unop_unpack_int_2x32:
    case ir_unop_unpack_uint_2x32:
       unreachable("unsupported");