start on FP16 compute

This is the rough skeleton of FP16 compute.  Some key parts like
transfer functions are still TODO.  I suspect there may be bugs in other
parts too, and then there are likely inefficiencies beyond that.

But, this is enough to run some of our unit tests, some even that
involve skcms_Transform().  Since it doesn't pass all our tests---and
really is completely useless---I have made using FP16 opt-in
temporarily, and added another build that compiles using the CPU feature
we need without opting in.  I don't want anyone to get a nasty surprise
if they use -march=native or something and stumble upon code that's
still in the middle of development.

Change-Id: If5a16fe8055fb17bc71d81cffa89ee2bfc3f6dab
Reviewed-by: Brian Osman <>
Commit-Queue: Mike Klein <>
5 files changed