diff options
author | Jason Ekstrand <[email protected]> | 2015-03-17 19:57:59 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2015-03-23 01:01:14 -0700 |
commit | a6d4a108d27f2b635748c583fe0507f04b3b493e (patch) | |
tree | 513917c5a7830e9064aaa0df6a19339fdd28a230 /src/mesa | |
parent | 41d64fa184671d372f6630deaf2401b00d4e984a (diff) |
i965/nir: Use signed integer type for booleans
FS instructions with NIR on i965:
total instructions in shared programs: 2663561 -> 2619051 (-1.67%)
instructions in affected programs: 1612965 -> 1568455 (-2.76%)
helped: 5455
HURT: 12
FS instructions with NIR on g4x:
total instructions in shared programs: 2352633 -> 2307908 (-1.90%)
instructions in affected programs: 1441842 -> 1397117 (-3.10%)
helped: 5463
HURT: 11
FS instructions with NIR on ilk:
total instructions in shared programs: 3997305 -> 3934278 (-1.58%)
instructions in affected programs: 2189409 -> 2126382 (-2.88%)
helped: 8969
HURT: 22
FS instructions with NIR on hsw (snb and ivb were similar):
total instructions in shared programs: 4109389 -> 4109242 (-0.00%)
instructions in affected programs: 109869 -> 109722 (-0.13%)
helped: 339
HURT: 190
No SIMD16 programs were gained or lost on any platform
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index 85070901979..69f296ce8c0 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -522,7 +522,7 @@ fs_visitor::nir_emit_if(nir_if *if_stmt) /* first, put the condition into f0 */ fs_inst *inst = emit(MOV(reg_null_d, retype(get_nir_src(if_stmt->condition), - BRW_REGISTER_TYPE_UD))); + BRW_REGISTER_TYPE_D))); inst->conditional_mod = BRW_CONDITIONAL_NZ; emit(IF(BRW_PREDICATE_NORMAL)); @@ -598,9 +598,9 @@ static brw_reg_type brw_type_for_nir_type(nir_alu_type type) { switch (type) { - case nir_type_bool: case nir_type_unsigned: return BRW_REGISTER_TYPE_UD; + case nir_type_bool: case nir_type_int: return BRW_REGISTER_TYPE_D; case nir_type_float: @@ -1279,7 +1279,7 @@ fs_visitor::nir_emit_alu(nir_alu_instr *instr) fs_reg masked = vgrf(glsl_type::int_type); emit(AND(masked, result, fs_reg(1))); masked.negate = true; - emit(MOV(result, masked)); + emit(MOV(retype(result, BRW_REGISTER_TYPE_D), masked)); } } |