st/xorg: Brian suggested that those could be mad's
authorZack Rusin <zackr@vmware.com>
Tue, 15 Sep 2009 10:00:52 +0000 (06:00 -0400)
committerZack Rusin <zackr@vmware.com>
Tue, 15 Sep 2009 19:21:42 +0000 (15:21 -0400)
optimizes the common paths

src/gallium/state_trackers/xorg/xorg_exa_tgsi.c

index 801d0d8df4d0c8ba32a5fa20c7cc2b139ded1ba5..d61cae53c7f0fc09949875c35632019dfe992225 100644 (file)
@@ -52,8 +52,7 @@ struct xorg_shaders {
 
 static const char over_op[] =
    "SUB TEMP[3], CONST[0].wwww, TEMP[1].wwww\n"
-   "MUL TEMP[3], TEMP[0], TEMP[3]\n"
-   "ADD TEMP[0], TEMP[3], TEMP[0]\n";
+   "MAD TEMP[3], TEMP[0], TEMP[3], TEMP[0]\n";
 
 
 static INLINE void
@@ -79,8 +78,7 @@ vs_normalize_coords(struct ureg_program *ureg, struct ureg_src coords,
 {
    struct ureg_dst tmp = ureg_DECL_temporary(ureg);
    struct ureg_src ret;
-   ureg_MUL(ureg, tmp, coords, const0);
-   ureg_ADD(ureg, tmp, ureg_src(tmp), const1);
+   ureg_MAD(ureg, tmp, coords, const0, const1);
    ret = ureg_src(tmp);
    ureg_release_temporary(ureg, tmp);
    return ret;