block invoke function once is stored in block literal, it will not change.
Therefore mark store and load of block invoke function as invariant.group.
This will facilitate lowering of indirect function calls to direct function
calls, which is important for OpenCL since OpenCL does not require
function pointer support.
Please match the capitalization of local variable names used in the surrounding code.