VERT DCL IN[0] DCL IN[1] DCL IN[2] DCL IN[3] DCL IN[4] DCL IN[5] DCL IN[6] DCL OUT[0], POSITION DCL OUT[1], GENERIC[20] DCL OUT[2], GENERIC[21] DCL CONST[0..62] DCL TEMP[0..3], LOCAL DCL TEMP[4..7], ARRAY(1), LOCAL DCL TEMP[8..11], ARRAY(2), LOCAL DCL TEMP[12..14], ARRAY(3), LOCAL DCL TEMP[15..17], ARRAY(4), LOCAL DCL TEMP[18..21], LOCAL DCL ADDR[0] IMM[0] FLT32 { 0.0000, 4.0000, 3.0000, 1.0000} IMM[1] FLT32 { 2.0000, 0.0000, 0.0000, 0.0000} 0: SLT TEMP[0].x, IMM[0].xxxx, CONST[5].xxxx 1: IF TEMP[0].xxxx :0 2: TRUNC TEMP[0], IN[6] 3: MOV TEMP[1], TEMP[0] 4: MOV TEMP[2], IN[5] 5: MUL TEMP[3].x, TEMP[0].xxxx, IMM[0].yyyy 6: ARL ADDR[0].x, TEMP[3].xxxx 7: MOV TEMP[4], CONST[ADDR[0].x+6] 8: ARL ADDR[0].x, TEMP[3].xxxx 9: MOV TEMP[5], CONST[ADDR[0].x+7] 10: ARL ADDR[0].x, TEMP[3].xxxx 11: MOV TEMP[6], CONST[ADDR[0].x+8] 12: ARL ADDR[0].x, TEMP[3].xxxx 13: MOV TEMP[7], CONST[ADDR[0].x+9] 14: MOV TEMP[8], TEMP[4] 15: MOV TEMP[9], TEMP[5] 16: MOV TEMP[10], TEMP[6] 17: MOV TEMP[11], TEMP[7] 18: MUL TEMP[3].x, TEMP[0].xxxx, IMM[0].zzzz 19: ARL ADDR[0].x, TEMP[3].xxxx 20: MOV TEMP[12].xyz, CONST[ADDR[0].x+38].xyzx 21: ARL ADDR[0].x, TEMP[3].xxxx 22: MOV TEMP[13].xyz, CONST[ADDR[0].x+39].xyzx 23: ARL ADDR[0].x, TEMP[3].xxxx 24: MOV TEMP[14].xyz, CONST[ADDR[0].x+40].xyzx 25: MOV TEMP[15], TEMP[12].xyzz 26: MOV TEMP[16], TEMP[13].xyzz 27: MOV TEMP[17], TEMP[14].xyzz 28: MUL TEMP[3], TEMP[4], IN[0].xxxx 29: MAD TEMP[3], TEMP[5], IN[0].yyyy, TEMP[3] 30: MAD TEMP[3], TEMP[6], IN[0].zzzz, TEMP[3] 31: ADD TEMP[3], TEMP[3], TEMP[7] 32: MUL TEMP[3], TEMP[3], IN[5].xxxx 33: MUL TEMP[18].xyz, TEMP[12].xyzz, IN[1].xxxx 34: MAD TEMP[18].xyz, TEMP[13].xyzz, IN[1].yyyy, TEMP[18].xyzz 35: MAD TEMP[18].xyz, TEMP[14].xyzz, IN[1].zzzz, TEMP[18].xyzz 36: MUL TEMP[18].xyz, TEMP[18].xyzz, IN[5].xxxx 37: IF CONST[62].xxxx :0 38: MUL TEMP[19].xyz, TEMP[12].xyzz, IN[2].xxxx 39: MAD TEMP[19].xyz, TEMP[13].xyzz, IN[2].yyyy, TEMP[19].xyzz 40: MAD TEMP[19].xyz, TEMP[14].xyzz, IN[2].zzzz, TEMP[19].xyzz 41: MUL TEMP[19].xyz, TEMP[19].xyzz, IN[5].xxxx 42: MUL TEMP[20].xyz, TEMP[12].xyzz, IN[3].xxxx 43: MAD TEMP[20].xyz, TEMP[13].xyzz, IN[3].yyyy, TEMP[20].xyzz 44: MAD TEMP[20].xyz, TEMP[14].xyzz, IN[3].zzzz, TEMP[20].xyzz 45: MUL TEMP[20].xyz, TEMP[20].xyzz, IN[5].xxxx 46: ENDIF 47: SLT TEMP[21].x, IMM[0].wwww, CONST[5].xxxx 48: IF TEMP[21].xxxx :0 49: MOV TEMP[1], TEMP[0].yzwx 50: MOV TEMP[2], IN[5].yzwx 51: MUL TEMP[21].x, TEMP[0].yyyy, IMM[0].yyyy 52: ARL ADDR[0].x, TEMP[21].xxxx 53: MOV TEMP[8], CONST[ADDR[0].x+6] 54: ARL ADDR[0].x, TEMP[21].xxxx 55: MOV TEMP[9], CONST[ADDR[0].x+7] 56: ARL ADDR[0].x, TEMP[21].xxxx 57: MOV TEMP[10], CONST[ADDR[0].x+8] 58: ARL ADDR[0].x, TEMP[21].xxxx 59: MOV TEMP[11], CONST[ADDR[0].x+9] 60: MUL TEMP[0].x, TEMP[0].yyyy, IMM[0].zzzz 61: ARL ADDR[0].x, TEMP[0].xxxx 62: MOV TEMP[15], CONST[ADDR[0].x+38] 63: ARL ADDR[0].x, TEMP[0].xxxx 64: MOV TEMP[16], CONST[ADDR[0].x+39] 65: ARL ADDR[0].x, TEMP[0].xxxx 66: MOV TEMP[17], CONST[ADDR[0].x+40] 67: MUL TEMP[0], TEMP[8], IN[0].xxxx 68: MAD TEMP[0], TEMP[9], IN[0].yyyy, TEMP[0] 69: MAD TEMP[0], TEMP[10], IN[0].zzzz, TEMP[0] 70: ADD TEMP[0], TEMP[0], TEMP[11] 71: MAD TEMP[3], TEMP[0], IN[5].yyyy, TEMP[3] 72: MUL TEMP[0].xyz, TEMP[15].xyzz, IN[1].xxxx 73: MAD TEMP[0].xyz, TEMP[16].xyzz, IN[1].yyyy, TEMP[0].xyzz 74: MAD TEMP[0].xyz, TEMP[17].xyzz, IN[1].zzzz, TEMP[0].xyzz 75: MAD TEMP[18].xyz, TEMP[0].xyzz, IN[5].yyyy, TEMP[18].xyzz 76: IF CONST[62].xxxx :0 77: MUL TEMP[0].xyz, TEMP[15].xyzz, IN[2].xxxx 78: MAD TEMP[0].xyz, TEMP[16].xyzz, IN[2].yyyy, TEMP[0].xyzz 79: MAD TEMP[0].xyz, TEMP[17].xyzz, IN[2].zzzz, TEMP[0].xyzz 80: MAD TEMP[19].xyz, TEMP[0].xyzz, IN[5].yyyy, TEMP[19].xyzz 81: MUL TEMP[0].xyz, TEMP[15].xyzz, IN[3].xxxx 82: MAD TEMP[0].xyz, TEMP[16].xyzz, IN[3].yyyy, TEMP[0].xyzz 83: MAD TEMP[0].xyz, TEMP[17].xyzz, IN[3].zzzz, TEMP[0].xyzz 84: MAD TEMP[20].xyz, TEMP[0].xyzz, IN[5].yyyy, TEMP[20].xyzz 85: ENDIF 86: ENDIF 87: SLT TEMP[0].x, IMM[1].xxxx, CONST[5].xxxx 88: IF TEMP[0].xxxx :0 89: MOV TEMP[1].x, TEMP[1].yzwx 90: MOV TEMP[2].x, TEMP[2].yzwx 91: MUL TEMP[0].x, TEMP[1].xxxx, IMM[0].yyyy 92: ARL ADDR[0].x, TEMP[0].xxxx 93: MOV TEMP[8], CONST[ADDR[0].x+6] 94: ARL ADDR[0].x, TEMP[0].xxxx 95: MOV TEMP[9], CONST[ADDR[0].x+7] 96: ARL ADDR[0].x, TEMP[0].xxxx 97: MOV TEMP[10], CONST[ADDR[0].x+8] 98: ARL ADDR[0].x, TEMP[0].xxxx 99: MOV TEMP[11], CONST[ADDR[0].x+9] 100: MUL TEMP[0].x, TEMP[1].xxxx, IMM[0].zzzz 101: ARL ADDR[0].x, TEMP[0].xxxx 102: MOV TEMP[15], CONST[ADDR[0].x+38] 103: ARL ADDR[0].x, TEMP[0].xxxx 104: MOV TEMP[16], CONST[ADDR[0].x+39] 105: ARL ADDR[0].x, TEMP[0].xxxx 106: MOV TEMP[17], CONST[ADDR[0].x+40] 107: MUL TEMP[0], TEMP[8], IN[0].xxxx 108: MAD TEMP[0], TEMP[9], IN[0].yyyy, TEMP[0] 109: MAD TEMP[0], TEMP[10], IN[0].zzzz, TEMP[0] 110: ADD TEMP[0], TEMP[0], TEMP[11] 111: MAD TEMP[3], TEMP[0], TEMP[2].xxxx, TEMP[3] 112: MUL TEMP[0].xyz, TEMP[15].xyzz, IN[1].xxxx 113: MAD TEMP[0].xyz, TEMP[16].xyzz, IN[1].yyyy, TEMP[0].xyzz 114: MAD TEMP[0].xyz, TEMP[17].xyzz, IN[1].zzzz, TEMP[0].xyzz 115: MAD TEMP[18].xyz, TEMP[0].xyzz, TEMP[2].xxxx, TEMP[18].xyzz 116: IF CONST[62].xxxx :0 117: MUL TEMP[0].xyz, TEMP[15].xyzz, IN[2].xxxx 118: MAD TEMP[0].xyz, TEMP[16].xyzz, IN[2].yyyy, TEMP[0].xyzz 119: MAD TEMP[0].xyz, TEMP[17].xyzz, IN[2].zzzz, TEMP[0].xyzz 120: MAD TEMP[19].xyz, TEMP[0].xyzz, TEMP[2].xxxx, TEMP[19].xyzz 121: MUL TEMP[0].xyz, TEMP[15].xyzz, IN[3].xxxx 122: MAD TEMP[0].xyz, TEMP[16].xyzz, IN[3].yyyy, TEMP[0].xyzz 123: MAD TEMP[0].xyz, TEMP[17].xyzz, IN[3].zzzz, TEMP[0].xyzz 124: MAD TEMP[20].xyz, TEMP[0].xyzz, TEMP[2].xxxx, TEMP[20].xyzz 125: ENDIF 126: ENDIF 127: MUL TEMP[0], CONST[0], TEMP[3].xxxx 128: MAD TEMP[0], CONST[1], TEMP[3].yyyy, TEMP[0] 129: MAD TEMP[0], CONST[2], TEMP[3].zzzz, TEMP[0] 130: MAD TEMP[0], CONST[3], TEMP[3].wwww, TEMP[0] 131: ADD TEMP[1].xyz, CONST[4].xyzz, -TEMP[3].xyzz 132: DP3 TEMP[2].x, TEMP[1].xyzz, TEMP[1].xyzz 133: RSQ TEMP[2].x, TEMP[2].xxxx 134: MUL TEMP[1].xyz, TEMP[1].xyzz, TEMP[2].xxxx 135: IF CONST[62].xxxx :0 136: DP3 TEMP[2].x, TEMP[19].xyzz, TEMP[19].xyzz 137: RSQ TEMP[2].x, TEMP[2].xxxx 138: MUL TEMP[2].xyz, TEMP[19].xyzz, TEMP[2].xxxx 139: DP3 TEMP[2].x, TEMP[2].xyzz, TEMP[1].xyzz 140: DP3 TEMP[3].x, TEMP[20].xyzz, TEMP[20].xyzz 141: RSQ TEMP[3].x, TEMP[3].xxxx 142: MUL TEMP[3].xyz, TEMP[20].xyzz, TEMP[3].xxxx 143: DP3 TEMP[3].x, TEMP[3].xyzz, TEMP[1].xyzz 144: MOV TEMP[2].y, TEMP[3].xxxx 145: DP3 TEMP[3].x, TEMP[18].xyzz, TEMP[18].xyzz 146: RSQ TEMP[3].x, TEMP[3].xxxx 147: MUL TEMP[3].xyz, TEMP[18].xyzz, TEMP[3].xxxx 148: DP3 TEMP[3].x, TEMP[3].xyzz, TEMP[1].xyzz 149: MOV TEMP[2].z, TEMP[3].xxxx 150: ELSE :0 151: DP3 TEMP[3].x, TEMP[18].xyzz, TEMP[18].xyzz 152: RSQ TEMP[3].x, TEMP[3].xxxx 153: MUL TEMP[3].xyz, TEMP[18].xyzz, TEMP[3].xxxx 154: DP3 TEMP[2].x, TEMP[3].xyzz, TEMP[1].xyzz 155: ENDIF 156: ENDIF 157: MOV TEMP[1].zw, TEMP[2].yyxy 158: MOV TEMP[2].x, TEMP[2].zzzz 159: MOV TEMP[1].xy, IN[4].xyxx 160: MOV OUT[1], TEMP[1] 161: MOV OUT[2], TEMP[2] 162: MOV OUT[0], TEMP[0] 163: END