[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: [PATCH vkd3d v8 2/4] vkd3d-shader/hlsl: Handle conditionals in copy propagation.
From:       Zebediah Figura <zfigura () codeweavers ! com>
Date:       2021-11-30 18:10:37
Message-ID: d637ab44-e0f2-8f13-84ba-2471df2c21d1 () codeweavers ! com
[Download RAW message or body]

So this is failing to optimize the following program, and I can't see why:

uniform int i;

float main() : sv_target
{
     float x = 0;
     if (0){}
     return x;
}

It generates the following code:

  2:      float | 0.00000000e+00
  3:            | = (x.x @2)
  4:        int | 0
  5:            | if (@4) {
                  } else {
                  }
  6:      float | x
  7:            | = (<retval-0x5620633a6280>.x @6)
  8:            | return
  9:       uint | 0
10:      float | <retval-0x5620633a6280>[@9]
11:            | = (<output-sv_target0>.x @10)

I'd expect @6 to be rewritten to @2.x, but that doesn't happen. Do you 
know why?

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic