Skip to content

Instantly share code, notes, and snippets.

@rygorous
Created July 6, 2017 21:03
Embed
What would you like to do?
AMD Terascale ASM for a simple UI vertex shader
; -------- Disassembly --------------------
00 CALL_FS
01 ALU: ADDR(32) CNT(66) KCACHE0(CB0:0-15)
0 x: MOV R4.x, 0.0f
y: MUL_e R0.y, R1.y, (0x3C800000, 0.015625f).x
z: MUL_e R0.z, R1.z, (0x3C800000, 0.015625f).x
w: MOV R4.w, 1.0f
1 x: MOV R0.x, 0.0f
z: MUL ____, PV0.y, KC0[5].z
w: MUL ____, PV0.y, KC0[5].x
2 x: MULADD R1.x, R0.z, KC0[5].y, PV1.w
y: MULADD R1.y, R0.z, KC0[5].w, PV1.z
z: MUL_e R6.z, R1.x, (0x3D000000, 0.03125f).x
w: MOV R5.w, (0x3F800000, 1.0f).y
3 x: DOT4_e R3.x, KC0[3].x, PV2.x
y: DOT4_e ____, KC0[3].y, PV2.y
z: DOT4_e ____, KC0[3].z, R0.x
w: DOT4_e ____, KC0[3].w, R0.x
4 x: DOT4_e ____, KC0[4].x, R1.x
y: DOT4_e R1.y, KC0[4].y, R1.y
z: DOT4_e ____, KC0[4].z, R0.x VEC_021
w: DOT4_e ____, KC0[4].w, R0.x VEC_021
5 x: DOT4 ____, R3.x, R3.x
y: DOT4 ____, PV4.x, PV4.x
z: DOT4 ____, R0.x, R0.x VEC_120
w: DOT4 R0.w, (0x80000000, -0.0f).x, 0.0f
6 x: DOT4 ____, R0.y, R0.y
y: DOT4 ____, R0.z, R0.z
z: DOT4 R0.z, R0.x, R0.x
w: DOT4 ____, (0x80000000, -0.0f).x, 0.0f
7 x: SQRT_e R0.x, R0.w
y: SQRT_e ____, R0.w
z: SQRT_e ____, R0.w
w: MOV R6.w, 0.0f
8 x: SQRT_e ____, R0.z
y: SQRT_e R0.y, R0.z
z: SQRT_e ____, R0.z
w: SETNE_DX10 R0.w, PV7.x, 0.0f
9 x: RCP_e ____, R0.x
y: RCP_e ____, R0.x
z: RCP_e ____, R0.x
w: MUL_e ____, R2.w, KC0[3].w
10 x: MUL_e ____, R0.y, PV9.y
y: MULADD_e ____, R2.z, KC0[3].z, PV9.w
z: MOV R5.z, KC0[3].z
w: MUL_e ____, R2.w, KC0[4].w
11 x: MULADD_e ____, R2.y, KC0[3].y, PV10.y
y: MULADD_e ____, R2.z, KC0[4].z, PV10.w
w: CNDE_INT R0.w, R0.w, 0.0f, PV10.x
12 x: MULADD_e ____, R2.x, KC0[3].x, PV11.x
y: MULADD_e ____, R2.y, KC0[4].y, PV11.y
13 x: MUL_e R3.x, R2.w, KC0[0].w
z: MULADD ____, R3.x, R0.w, PV12.x
w: MULADD_e ____, R2.x, KC0[4].x, PV12.y VEC_120
14 x: MULADD R5.x, PV13.z, KC0[2].x, KC0[2].z
y: MULADD R1.y, R1.y, R0.w, PV13.w
15 x: DOT4_e R6.x, R2.x, KC0[0].x
y: DOT4_e ____, R2.y, KC0[0].y
z: DOT4_e ____, R2.z, KC0[0].z
w: DOT4_e ____, R3.x, 1.0f VEC_120
16 x: DOT4_e ____, R2.x, KC0[1].x
y: DOT4_e R6.y, R2.y, KC0[1].y
z: DOT4_e ____, R2.z, KC0[1].z
w: DOT4_e ____, R2.w, KC0[1].w
17 y: MULADD R5.y, R1.y, KC0[2].y, KC0[2].w
02 EXP_DONE: POS0, R4.xxxw
03 EXP: PARAM0, R5 NO_BARRIER
04 EXP_DONE: PARAM1, R6 NO_BARRIER
05 ALU: ADDR(98) CNT(1)
18 x: NOP ____
06 NOP NO_BARRIER
07 END
END_OF_PROGRAM
; -------- Disassembly --------------------
00 CALL_FS
01 ALU: ADDR(32) CNT(58) KCACHE0(CB0:0-15)
0 x: MOV R0.x, 0.0f
y: MUL_e T0.y, R1.y, (0x3C800000, 0.015625f).x
z: MUL_e T0.z, R1.z, (0x3C800000, 0.015625f).x
w: MOV R0.w, 1.0f
t: MOV T1.z, 0.0f
1 x: MUL ____, PS0, PS0
z: MUL ____, PV0.y, KC0[5].z
w: MUL ____, PV0.y, KC0[5].x
t: MOV R3.w, (0x3F800000, 1.0f).x
2 x: MULADD T0.x, T0.z, KC0[5].y, PV1.w
y: MULADD T1.y, T0.z, KC0[5].w, PV1.z
z: MUL_e R1.z, R1.x, (0x3D000000, 0.03125f).x
w: MOV R1.w, 0.0f
t: MULADD ____, T0.z, T0.z, PV1.x
3 x: DOT4_e T1.x, KC0[3].x, PV2.x
y: DOT4_e ____, KC0[3].y, PV2.y
z: DOT4_e ____, KC0[3].z, T1.z
w: DOT4_e ____, KC0[3].w, T1.z
t: MULADD ____, T0.y, T0.y, PS2
4 x: DOT4_e ____, KC0[4].x, T0.x
y: DOT4_e T0.y, KC0[4].y, T1.y
z: DOT4_e ____, KC0[4].z, T1.z
w: DOT4_e ____, KC0[4].w, T1.z
t: SQRT_e T1.y, PS3
5 x: DOT4 ____, T1.x, T1.x
y: DOT4 ____, PV4.x, PV4.x
z: DOT4 ____, T1.z, T1.z
w: DOT4 ____, (0x80000000, -0.0f).x, 0.0f
t: MOV R3.z, KC0[3].z
6 x: DOT4_e T0.x, R2.x, KC0[3].x
y: DOT4_e ____, R2.y, KC0[3].y
z: DOT4_e ____, R2.z, KC0[3].z
w: DOT4_e ____, R2.w, KC0[3].w
t: SQRT_e ____, PV5.x
7 x: MUL_e ____, R2.w, KC0[4].w
y: MUL_e ____, R2.w, KC0[0].w
z: SETNE_DX10 T1.z, PS6, 0.0f
t: RCP_e ____, PS6
8 x: MUL_e ____, T1.y, PS7
y: MULADD_e ____, R2.z, KC0[0].z, PV7.y
t: MULADD_e ____, R2.z, KC0[4].z, PV7.x VEC_021
9 x: MULADD_e ____, R2.y, KC0[4].y, PS8
w: CNDE_INT T0.w, T1.z, 0.0f, PV8.x
t: MULADD_e ____, R2.y, KC0[0].y, PV8.y VEC_021
10 x: MULADD_e R1.x, R2.x, KC0[0].x, PS9
z: MULADD ____, T1.x, PV9.w, T0.x VEC_102
w: MULADD_e ____, R2.x, KC0[4].x, PV9.x
11 x: MULADD R3.x, PV10.z, KC0[2].x, KC0[2].z
y: MULADD T0.y, T0.y, T0.w, PV10.w
12 x: DOT4_e ____, R2.x, KC0[1].x
y: DOT4_e R1.y, R2.y, KC0[1].y
z: DOT4_e ____, R2.z, KC0[1].z
w: DOT4_e ____, R2.w, KC0[1].w
13 y: MULADD R3.y, T0.y, KC0[2].y, KC0[2].w
02 EXP_DONE: POS0, R0.xxxw
03 EXP: PARAM0, R3 NO_BARRIER
04 EXP_DONE: PARAM1, R1 NO_BARRIER
05 ALU: ADDR(90) CNT(1)
14 x: NOP ____
06 NOP NO_BARRIER
END_OF_PROGRAM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment