fp64: start adding pack/unpack double2x32 variants.
glsl->tgsi: add double pack/unpack to the things I shouldn't see list

not sure if we should see these :-)
mesa/ir: add double pack/unpack to switch
glsl: double shader input/outputs need to be qualified flat.

This is from the ARB_gpu_shader_fp64 spec.

Signed-off-by: Dave Airlie <airlied@redhat.com>
pack/unpack double fixes
st/glsl: implement pack/unpack double
tgsi: add some more opcode comments
glsl: clone operands before feeding them into swizzle

FOLD into change which adds double_dot_to_fma

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0/ir: add emission of dadd/dmul/dmad opcodes, fix minmax

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0/ir: fix lowering of RSQ/RCP/SQRT/MOD to work with F64

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
HACK nvc0/ir: populate shader header bit indicating fp64

HACK ALERT: this should figure out if the shader's doing fp64 stuff and
use that to populate the header.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0/ir: no instruction can load a double immediate

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0/ir: add support for new TGSI double opcodes

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
temporarily claim to have sqrt
nvc0/ir: remove merge/split pairs to allow normal propagation to occur

Because the TGSI interface creates merges for each instruction source
and then splits them back out, there are a lot of unnecessary
merge/split pairs which do essentially nothing. The various modifier/etc
propagation doesn't know how to walk though those, so just remove them
when they're unnecessary.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0/ir: handle zero and negative sqrt arguments

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>