Skip to content
  • Ian Romanick's avatar
    intel/compiler: Lower 8-bit ops to 16-bit in NIR on all platforms · f050c708
    Ian Romanick authored
    This fixes the Crucible func.shader.shift.int8_t test on Gen8 and Gen9.
    See mesa/crucible!76
    
    .
    
    With the previous optimizations in place, this change seems to improve
    the quality of the generated code.  Comparing a couple Vulkan CTS tests
    on Skylake had the following results.
    
    dEQP-VK.spirv_assembly.type.vec3.i8.bitwise_xor_frag:
    SIMD8 shader: 36 instructions. 1 loops. 3822 cycles. 0:0 spills:fills, 5 sends
    SIMD8 shader: 27 instructions. 1 loops. 2742 cycles. 0:0 spills:fills, 5 sends
    
    dEQP-VK.spirv_assembly.type.vec3.i8.max_frag:
    SIMD8 shader: 39 instructions. 1 loops. 3922 cycles. 0:0 spills:fills, 5 sends
    SIMD8 shader: 37 instructions. 1 loops. 3682 cycles. 0:0 spills:fills, 5 sends
    
    Reviewed-by: default avatarFrancisco Jerez <currojerez@riseup.net>
    f050c708