gallivm: Implement demote and lower terminate in nir
The current implementation does not work for terminate since loads need
to ignore the mask because of helper invocations. This can lead to
crashes.
Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
The migration is almost done, at least the rest should happen in the background. There are still a few technical difference between the old cluster and the new ones, and they are summarized in this issue. Please pay attention to the TL:DR at the end of the comment.
The current implementation does not work for terminate since loads need
to ignore the mask because of helper invocations. This can lead to
crashes.