What a cryptic error message, yeah? Good grief! Thanks Adobe! Googling didn’t come up with very much, either.
Turned out I was passing two constant registers to an operation.
So basically, in order to compare two temporary registers, you have to copy one of them to a temporary register first.
This code failed in my vertex shader:
ife vc7.x, vc5.x
But this code works:
mov vt1, vc7
ife vt1.x, vc5.x
Go figure. Wonder why that is. Solution found on a comment on this article.