[Mesa-dev] radeonsi: LLVM r187139 broke some piglit tests
Tom Stellard
tom at stellard.net
Wed Jul 31 08:42:55 PDT 2013
On Wed, Jul 31, 2013 at 01:04:01PM +0200, Michel Dänzer wrote:
>
> LLVM revision 187139 ('Allocate local registers in order for optimal
> coloring.') broke some derivative related piglit tests with the radeonsi
> driver.
>
> I'm attaching a diff between the bad and good generated code (as printed
> with RADEON_DUMP_SHADERS=1) for the glsl-derivs test. The only
> difference I can see is in which registers are used in which order.
>
> I wonder if we might be missing S_WAITCNT after DS_READ/WRITE
> instructions in some cases, but I haven't spotted any candidates for
> that in the bad code which aren't there in the good code as well. Can
> anyone else spot something I've missed?
>
Shouldn't we be using the S_BARRIER instruction to keep the threads in sync?
-Tom
> Any other ideas?
>
>
> --
> Earthling Michel Dänzer | http://www.amd.com
> Libre software enthusiast | Debian, X and DRI developer
> --- /tmp/glsl-derivs.bad 2013-07-31 12:01:43.248405367 +0200
> +++ /tmp/glsl-derivs.good 2013-07-31 12:03:22.640102890 +0200
> @@ -605,40 +605,40 @@ BB#0: derived from LLVM BB %main_body
> %M0<def> = S_MOV_B32 %SGPR6
> %VGPR2<def> = V_INTERP_P1_F32 %VGPR0, 0, 0, %M0<kill>, %EXEC<imp-use>
> %VGPR2<def,tied1> = V_INTERP_P2_F32 %VGPR2<kill,tied0>, %VGPR1, 0, 0, %M0<kill>, %EXEC<imp-use>
> - %VGPR2<def> = V_MUL_F32_e32 4.000000e+01, %VGPR2<kill>, %EXEC<imp-use>
> - %VGPR3<def> = V_MBCNT_LO_U32_B32_e64 -1, 0, 0, 0, 0, 0, %EXEC<imp-use>
> - %VGPR3<def> = V_MBCNT_HI_U32_B32_e32 -1, %VGPR3<kill>, %EXEC<imp-use>, %VGPR3_VGPR4<imp-def>
> - %VGPR4<def> = V_ASHRREV_I32_e32 31, %VGPR3, %EXEC<imp-use>, %VGPR3_VGPR4<imp-use,kill>, %VGPR3_VGPR4<imp-def>
> - %VGPR5_VGPR6<def> = V_LSHL_B64 %VGPR3_VGPR4, 2, %EXEC<imp-use>
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR2<kill>, %VGPR2, 0, 0, %EXEC<imp-use>; mem:ST4[%28]
> - %VGPR2<def> = V_INTERP_P1_F32 %VGPR0, 1, 0, %M0<kill>, %EXEC<imp-use>
> - %VGPR2<def,tied1> = V_INTERP_P2_F32 %VGPR2<kill,tied0>, %VGPR1, 1, 0, %M0<kill>, %EXEC<imp-use>, %VGPR0_VGPR1<imp-use,kill>
> - %VGPR0<def> = V_MUL_F32_e32 4.000000e+01, %VGPR2<kill>, %EXEC<imp-use>
> + %VGPR6<def> = V_MUL_F32_e32 4.000000e+01, %VGPR2<kill>, %EXEC<imp-use>
> + %VGPR2<def> = V_MBCNT_LO_U32_B32_e64 -1, 0, 0, 0, 0, 0, %EXEC<imp-use>
> + %VGPR4<def> = V_MBCNT_HI_U32_B32_e32 -1, %VGPR2<kill>, %EXEC<imp-use>, %VGPR4_VGPR5<imp-def>
> + %VGPR5<def> = V_ASHRREV_I32_e32 31, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR2_VGPR3<def> = V_LSHL_B64 %VGPR4_VGPR5, 2, %EXEC<imp-use>
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR6<kill>, %VGPR6, 0, 0, %EXEC<imp-use>; mem:ST4[%28]
> + %VGPR6<def> = V_INTERP_P1_F32 %VGPR0, 1, 0, %M0<kill>, %EXEC<imp-use>
> + %VGPR6<def,tied1> = V_INTERP_P2_F32 %VGPR6<kill,tied0>, %VGPR1, 1, 0, %M0<kill>, %EXEC<imp-use>, %VGPR0_VGPR1<imp-use,kill>
> + %VGPR0<def> = V_MUL_F32_e32 4.000000e+01, %VGPR6<kill>, %EXEC<imp-use>
> %SGPR0_SGPR1_SGPR2_SGPR3<def> = S_LOAD_DWORDX4_IMM %SGPR0_SGPR1<kill>, 0; mem:LD16[%20](tbaa=!"const")
> S_WAITCNT 127
> %SGPR0<def> = S_BUFFER_LOAD_DWORD_IMM %SGPR0_SGPR1_SGPR2_SGPR3<kill>, 0
> S_WAITCNT 127
> %VGPR0<def> = V_MUL_F32_e32 %SGPR0<kill>, %VGPR0<kill>, %EXEC<imp-use>
> - %VGPR1<def> = V_AND_B32_e32 -4, %VGPR3, %EXEC<imp-use>, %VGPR3_VGPR4<imp-use,kill>, %VGPR1_VGPR2<imp-def>
> - %VGPR3<def> = V_OR_B32_e32 1, %VGPR1, %EXEC<imp-use>, %VGPR3_VGPR4<imp-def>
> - %VGPR4<def> = V_ASHRREV_I32_e32 31, %VGPR3, %EXEC<imp-use>, %VGPR3_VGPR4<imp-use,kill>, %VGPR3_VGPR4<imp-def>
> - %VGPR3_VGPR4<def> = V_LSHL_B64 %VGPR3_VGPR4<kill>, 2, %EXEC<imp-use>
> - %VGPR3<def> = DS_READ_B32 0, %VGPR3, %VGPR3, %VGPR3, 0, 0, %EXEC<imp-use>, %VGPR3_VGPR4<imp-use,kill>; mem:LD4[%32]
> - %VGPR2<def> = V_ASHRREV_I32_e32 31, %VGPR1, %EXEC<imp-use>, %VGPR1_VGPR2<imp-use,kill>, %VGPR1_VGPR2<imp-def>
> - %VGPR7_VGPR8<def> = V_LSHL_B64 %VGPR1_VGPR2, 2, %EXEC<imp-use>
> - %VGPR4<def> = DS_READ_B32 0, %VGPR7, %VGPR7, %VGPR7, 0, 0, %EXEC<imp-use>; mem:LD4[%30]
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> - %VGPR1<def> = V_OR_B32_e32 2, %VGPR1, %EXEC<imp-use>, %VGPR1_VGPR2<imp-use,kill>, %VGPR1_VGPR2<imp-def>
> - %VGPR2<def> = V_ASHRREV_I32_e32 31, %VGPR1, %EXEC<imp-use>, %VGPR1_VGPR2<imp-use,kill>, %VGPR1_VGPR2<imp-def>
> - %VGPR1_VGPR2<def> = V_LSHL_B64 %VGPR1_VGPR2<kill>, 2, %EXEC<imp-use>
> - %VGPR1<def> = DS_READ_B32 0, %VGPR1, %VGPR1, %VGPR1, 0, 0, %EXEC<imp-use>, %VGPR1_VGPR2<imp-use,kill>; mem:LD4[%53]
> - %VGPR2<def> = DS_READ_B32 0, %VGPR7, %VGPR7, %VGPR7, 0, 0, %EXEC<imp-use>, %VGPR7_VGPR8<imp-use,kill>; mem:LD4[%51]
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR0<kill>, %VGPR0, 0, 0, %EXEC<imp-use>, %VGPR5_VGPR6<imp-use,kill>; mem:ST4[%49]
> + %VGPR4<def> = V_AND_B32_e32 -4, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR6<def> = V_OR_B32_e32 1, %VGPR4, %EXEC<imp-use>, %VGPR6_VGPR7<imp-def>
> + %VGPR7<def> = V_ASHRREV_I32_e32 31, %VGPR6, %EXEC<imp-use>, %VGPR6_VGPR7<imp-use,kill>, %VGPR6_VGPR7<imp-def>
> + %VGPR6_VGPR7<def> = V_LSHL_B64 %VGPR6_VGPR7<kill>, 2, %EXEC<imp-use>
> + %VGPR1<def> = DS_READ_B32 0, %VGPR6, %VGPR6, %VGPR6, 0, 0, %EXEC<imp-use>, %VGPR6_VGPR7<imp-use,kill>; mem:LD4[%32]
> + %VGPR5<def> = V_ASHRREV_I32_e32 31, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR7_VGPR8<def> = V_LSHL_B64 %VGPR4_VGPR5, 2, %EXEC<imp-use>
> + %VGPR6<def> = DS_READ_B32 0, %VGPR7, %VGPR7, %VGPR7, 0, 0, %EXEC<imp-use>; mem:LD4[%30]
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> + %VGPR4<def> = V_OR_B32_e32 2, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR5<def> = V_ASHRREV_I32_e32 31, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR4_VGPR5<def> = V_LSHL_B64 %VGPR4_VGPR5<kill>, 2, %EXEC<imp-use>
> + %VGPR4<def> = DS_READ_B32 0, %VGPR4, %VGPR4, %VGPR4, 0, 0, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>; mem:LD4[%53]
> + %VGPR5<def> = DS_READ_B32 0, %VGPR7, %VGPR7, %VGPR7, 0, 0, %EXEC<imp-use>, %VGPR7_VGPR8<imp-use,kill>; mem:LD4[%51]
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR0<kill>, %VGPR0, 0, 0, %EXEC<imp-use>, %VGPR2_VGPR3<imp-use,kill>; mem:ST4[%49]
> S_WAITCNT 127
> - %VGPR0<def> = V_SUB_F32_e32 %VGPR3<kill>, %VGPR4<kill>, %EXEC<imp-use>
> - %VGPR1<def> = V_SUB_F32_e32 %VGPR1<kill>, %VGPR2<kill>, %EXEC<imp-use>
> + %VGPR0<def> = V_SUB_F32_e32 %VGPR1<kill>, %VGPR6<kill>, %EXEC<imp-use>
> + %VGPR1<def> = V_SUB_F32_e32 %VGPR4<kill>, %VGPR5<kill>, %EXEC<imp-use>
> %VGPR2<def> = V_MOV_B32_e32 1.000000e+00, %EXEC<imp-use>
> %VGPR3<def> = V_MOV_B32_e32 0.000000e+00, %EXEC<imp-use>
> EXP 15, 0, 0, 1, 1, %VGPR0<kill>, %VGPR1<kill>, %VGPR3<kill>, %VGPR2<kill>, %EXEC<imp-use,kill>
> @@ -652,56 +652,56 @@ befc03c1
> befc0306
> c8080000
> c8090001
> -100404ff
> +100c04ff
> 42200000
> -d2460003
> +d2460002
> 020100c1
> -480606c1
> -3008069f
> -d2c20005
> -02010503
> -d8360000
> -00020205
> -c8080100
> -c8090101
> -100004ff
> +480804c1
> +300a089f
> +d2c20002
> +02010504
> +d8340000
> +00060602
> +c8180100
> +c8190101
> +10000cff
> 42200000
> c0800100
> bf8c007f
> c2000100
> bf8c007f
> 10000000
> -360206c4
> -38060281
> -3008069f
> -d2c20003
> -02010503
> +360808c4
> +380c0881
> +300e0c9f
> +d2c20006
> +02010506
> d8d80000
> -03030303
> -3004029f
> +01060606
> +300a089f
> d2c20007
> -02010501
> +02010504
> d8d80000
> -04070707
> -d8360000
> -00000005
> -38020282
> -3004029f
> -d2c20001
> -02010501
> +06070707
> +d8340000
> +00000002
> +38080882
> +300a089f
> +d2c20004
> +02010504
> d8d80000
> -01010101
> +04040404
> d8d80000
> -02070707
> -d8360000
> -00000005
> -d8360000
> -00000005
> -d8360000
> -00000005
> +05070707
> +d8340000
> +00000002
> +d8340000
> +00000002
> +d8340000
> +00000002
> bf8c007f
> -08000903
> -08020501
> +08000d01
> +08020b04
> 7e0402f2
> 7e060280
> f800180f
> @@ -1474,40 +1474,40 @@ BB#0: derived from LLVM BB %main_body
> %M0<def> = S_MOV_B32 %SGPR6
> %VGPR2<def> = V_INTERP_P1_F32 %VGPR0, 0, 0, %M0<kill>, %EXEC<imp-use>
> %VGPR2<def,tied1> = V_INTERP_P2_F32 %VGPR2<kill,tied0>, %VGPR1, 0, 0, %M0<kill>, %EXEC<imp-use>
> - %VGPR2<def> = V_MUL_F32_e32 4.000000e+01, %VGPR2<kill>, %EXEC<imp-use>
> - %VGPR3<def> = V_MBCNT_LO_U32_B32_e64 -1, 0, 0, 0, 0, 0, %EXEC<imp-use>
> - %VGPR3<def> = V_MBCNT_HI_U32_B32_e32 -1, %VGPR3<kill>, %EXEC<imp-use>, %VGPR3_VGPR4<imp-def>
> - %VGPR4<def> = V_ASHRREV_I32_e32 31, %VGPR3, %EXEC<imp-use>, %VGPR3_VGPR4<imp-use,kill>, %VGPR3_VGPR4<imp-def>
> - %VGPR5_VGPR6<def> = V_LSHL_B64 %VGPR3_VGPR4, 2, %EXEC<imp-use>
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR2<kill>, %VGPR2, 0, 0, %EXEC<imp-use>; mem:ST4[%28]
> - %VGPR2<def> = V_INTERP_P1_F32 %VGPR0, 1, 0, %M0<kill>, %EXEC<imp-use>
> - %VGPR2<def,tied1> = V_INTERP_P2_F32 %VGPR2<kill,tied0>, %VGPR1, 1, 0, %M0<kill>, %EXEC<imp-use>, %VGPR0_VGPR1<imp-use,kill>
> - %VGPR0<def> = V_MUL_F32_e32 4.000000e+01, %VGPR2<kill>, %EXEC<imp-use>
> + %VGPR6<def> = V_MUL_F32_e32 4.000000e+01, %VGPR2<kill>, %EXEC<imp-use>
> + %VGPR2<def> = V_MBCNT_LO_U32_B32_e64 -1, 0, 0, 0, 0, 0, %EXEC<imp-use>
> + %VGPR4<def> = V_MBCNT_HI_U32_B32_e32 -1, %VGPR2<kill>, %EXEC<imp-use>, %VGPR4_VGPR5<imp-def>
> + %VGPR5<def> = V_ASHRREV_I32_e32 31, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR2_VGPR3<def> = V_LSHL_B64 %VGPR4_VGPR5, 2, %EXEC<imp-use>
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR6<kill>, %VGPR6, 0, 0, %EXEC<imp-use>; mem:ST4[%28]
> + %VGPR6<def> = V_INTERP_P1_F32 %VGPR0, 1, 0, %M0<kill>, %EXEC<imp-use>
> + %VGPR6<def,tied1> = V_INTERP_P2_F32 %VGPR6<kill,tied0>, %VGPR1, 1, 0, %M0<kill>, %EXEC<imp-use>, %VGPR0_VGPR1<imp-use,kill>
> + %VGPR0<def> = V_MUL_F32_e32 4.000000e+01, %VGPR6<kill>, %EXEC<imp-use>
> %SGPR0_SGPR1_SGPR2_SGPR3<def> = S_LOAD_DWORDX4_IMM %SGPR0_SGPR1<kill>, 0; mem:LD16[%20](tbaa=!"const")
> S_WAITCNT 127
> %SGPR0<def> = S_BUFFER_LOAD_DWORD_IMM %SGPR0_SGPR1_SGPR2_SGPR3<kill>, 0
> S_WAITCNT 127
> %VGPR0<def> = V_MUL_F32_e32 %SGPR0<kill>, %VGPR0<kill>, %EXEC<imp-use>
> - %VGPR1<def> = V_AND_B32_e32 -4, %VGPR3, %EXEC<imp-use>, %VGPR3_VGPR4<imp-use,kill>, %VGPR1_VGPR2<imp-def>
> - %VGPR3<def> = V_OR_B32_e32 1, %VGPR1, %EXEC<imp-use>, %VGPR3_VGPR4<imp-def>
> - %VGPR4<def> = V_ASHRREV_I32_e32 31, %VGPR3, %EXEC<imp-use>, %VGPR3_VGPR4<imp-use,kill>, %VGPR3_VGPR4<imp-def>
> - %VGPR3_VGPR4<def> = V_LSHL_B64 %VGPR3_VGPR4<kill>, 2, %EXEC<imp-use>
> - %VGPR3<def> = DS_READ_B32 0, %VGPR3, %VGPR3, %VGPR3, 0, 0, %EXEC<imp-use>, %VGPR3_VGPR4<imp-use,kill>; mem:LD4[%32]
> - %VGPR2<def> = V_ASHRREV_I32_e32 31, %VGPR1, %EXEC<imp-use>, %VGPR1_VGPR2<imp-use,kill>, %VGPR1_VGPR2<imp-def>
> - %VGPR7_VGPR8<def> = V_LSHL_B64 %VGPR1_VGPR2, 2, %EXEC<imp-use>
> - %VGPR4<def> = DS_READ_B32 0, %VGPR7, %VGPR7, %VGPR7, 0, 0, %EXEC<imp-use>; mem:LD4[%30]
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> - %VGPR1<def> = V_OR_B32_e32 2, %VGPR1, %EXEC<imp-use>, %VGPR1_VGPR2<imp-use,kill>, %VGPR1_VGPR2<imp-def>
> - %VGPR2<def> = V_ASHRREV_I32_e32 31, %VGPR1, %EXEC<imp-use>, %VGPR1_VGPR2<imp-use,kill>, %VGPR1_VGPR2<imp-def>
> - %VGPR1_VGPR2<def> = V_LSHL_B64 %VGPR1_VGPR2<kill>, 2, %EXEC<imp-use>
> - %VGPR1<def> = DS_READ_B32 0, %VGPR1, %VGPR1, %VGPR1, 0, 0, %EXEC<imp-use>, %VGPR1_VGPR2<imp-use,kill>; mem:LD4[%53]
> - %VGPR2<def> = DS_READ_B32 0, %VGPR7, %VGPR7, %VGPR7, 0, 0, %EXEC<imp-use>, %VGPR7_VGPR8<imp-use,kill>; mem:LD4[%51]
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> - DS_WRITE_B32 %VGPR5, %VGPR5, %VGPR0<kill>, %VGPR0, 0, 0, %EXEC<imp-use>, %VGPR5_VGPR6<imp-use,kill>; mem:ST4[%49]
> + %VGPR4<def> = V_AND_B32_e32 -4, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR6<def> = V_OR_B32_e32 1, %VGPR4, %EXEC<imp-use>, %VGPR6_VGPR7<imp-def>
> + %VGPR7<def> = V_ASHRREV_I32_e32 31, %VGPR6, %EXEC<imp-use>, %VGPR6_VGPR7<imp-use,kill>, %VGPR6_VGPR7<imp-def>
> + %VGPR6_VGPR7<def> = V_LSHL_B64 %VGPR6_VGPR7<kill>, 2, %EXEC<imp-use>
> + %VGPR1<def> = DS_READ_B32 0, %VGPR6, %VGPR6, %VGPR6, 0, 0, %EXEC<imp-use>, %VGPR6_VGPR7<imp-use,kill>; mem:LD4[%32]
> + %VGPR5<def> = V_ASHRREV_I32_e32 31, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR7_VGPR8<def> = V_LSHL_B64 %VGPR4_VGPR5, 2, %EXEC<imp-use>
> + %VGPR6<def> = DS_READ_B32 0, %VGPR7, %VGPR7, %VGPR7, 0, 0, %EXEC<imp-use>; mem:LD4[%30]
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> + %VGPR4<def> = V_OR_B32_e32 2, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR5<def> = V_ASHRREV_I32_e32 31, %VGPR4, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>, %VGPR4_VGPR5<imp-def>
> + %VGPR4_VGPR5<def> = V_LSHL_B64 %VGPR4_VGPR5<kill>, 2, %EXEC<imp-use>
> + %VGPR4<def> = DS_READ_B32 0, %VGPR4, %VGPR4, %VGPR4, 0, 0, %EXEC<imp-use>, %VGPR4_VGPR5<imp-use,kill>; mem:LD4[%53]
> + %VGPR5<def> = DS_READ_B32 0, %VGPR7, %VGPR7, %VGPR7, 0, 0, %EXEC<imp-use>, %VGPR7_VGPR8<imp-use,kill>; mem:LD4[%51]
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR0, %VGPR0, 0, 0, %EXEC<imp-use>; mem:ST4[%49]
> + DS_WRITE_B32 %VGPR2, %VGPR2, %VGPR0<kill>, %VGPR0, 0, 0, %EXEC<imp-use>, %VGPR2_VGPR3<imp-use,kill>; mem:ST4[%49]
> S_WAITCNT 127
> - %VGPR0<def> = V_SUB_F32_e32 %VGPR3<kill>, %VGPR4<kill>, %EXEC<imp-use>
> - %VGPR1<def> = V_SUB_F32_e32 %VGPR1<kill>, %VGPR2<kill>, %EXEC<imp-use>
> + %VGPR0<def> = V_SUB_F32_e32 %VGPR1<kill>, %VGPR6<kill>, %EXEC<imp-use>
> + %VGPR1<def> = V_SUB_F32_e32 %VGPR4<kill>, %VGPR5<kill>, %EXEC<imp-use>
> %VGPR0<def> = V_CVT_PKRTZ_F16_F32_e32 %VGPR0<kill>, %VGPR1<kill>, %EXEC<imp-use>
> %VGPR1<def> = V_CVT_PKRTZ_F16_F32_e64 0.000000e+00, 1.000000e+00, 0, 0, 0, 0, %EXEC<imp-use>
> EXP 15, 0, 1, 1, 1, %VGPR0<kill>, %VGPR1<kill>, %VGPR0, %VGPR1, %EXEC<imp-use,kill>
> @@ -1521,56 +1521,56 @@ befc03c1
> befc0306
> c8080000
> c8090001
> -100404ff
> +100c04ff
> 42200000
> -d2460003
> +d2460002
> 020100c1
> -480606c1
> -3008069f
> -d2c20005
> -02010503
> -d8360000
> -00020205
> -c8080100
> -c8090101
> -100004ff
> +480804c1
> +300a089f
> +d2c20002
> +02010504
> +d8340000
> +00060602
> +c8180100
> +c8190101
> +10000cff
> 42200000
> c0800100
> bf8c007f
> c2000100
> bf8c007f
> 10000000
> -360206c4
> -38060281
> -3008069f
> -d2c20003
> -02010503
> +360808c4
> +380c0881
> +300e0c9f
> +d2c20006
> +02010506
> d8d80000
> -03030303
> -3004029f
> +01060606
> +300a089f
> d2c20007
> -02010501
> +02010504
> d8d80000
> -04070707
> -d8360000
> -00000005
> -38020282
> -3004029f
> -d2c20001
> -02010501
> +06070707
> +d8340000
> +00000002
> +38080882
> +300a089f
> +d2c20004
> +02010504
> d8d80000
> -01010101
> +04040404
> d8d80000
> -02070707
> -d8360000
> -00000005
> -d8360000
> -00000005
> -d8360000
> -00000005
> +05070707
> +d8340000
> +00000002
> +d8340000
> +00000002
> +d8340000
> +00000002
> bf8c007f
> -08000903
> -08020501
> +08000d01
> +08020b04
> 5e000300
> d25e0001
> 0201e480
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list