snake5 icon

shader compiler IR dump - constant propagation

snake5 | PRO | 12/23/17 03:45:23 PM UTC | 0 ⭐ | 753 👁️ | Never ⏰ | []
LLVM |

920 B

|

None

|

0 👍

/

0 👎

shader:
float4 main() : POSITION { return 1.0 + 2.0 * 3.0 / 4.0 - 0.5 % 1.0; }
 
original IR:
module
{
  struct:00CE3890:main__ret{ [4 x f32] __RetVal:POSITION }
  function 'main'() -> struct:00CE3890:main__ret
  {
    block
    {
      00CF6F00 = mod.f32(f32:0.5,f32:1)
      00CF7130 = mul.f32(f32:2,f32:3)
      00CF7520 = div.f32(00CF7130,f32:4)
      00CF6E90 = add.f32(f32:1,00CF7520)
      00CF6F70 = sub.f32(00CF6E90,00CF6F00)
      00CFF3C0 = cast [4 x f32] 00CF6F70
      00CFF6C0 = aggregate struct:00CE3890:main__ret (00CFF3C0)
      ret struct:00CE3890:main__ret 00CFF6C0
    }
  }
}
optimized IR:
module
{
  struct:00CE3890:main__ret{ [4 x f32] __RetVal:POSITION }
  function 'main'() -> struct:00CE3890:main__ret
  {
    block
    {
      00CFF3C0 = cast [4 x f32] f32:2
      00CFF6C0 = aggregate struct:00CE3890:main__ret (00CFF3C0)
      ret struct:00CE3890:main__ret 00CFF6C0
    }
  }
}

Comments