The build bots caught two additional pre-existing problems exposed by the test change part of my change https://reviews.llvm.org/D91339, when expensive checks are enabled. This fixes one of them.
X86 has CALL64r and CALL32r opcodes, where CALL64r takes a 64-bit register, and CALL32r takes a 32-bit register. The check for which opcode to use was based on Is64Bit (Subtarget->is64Bit())CALL64r can only be used in 64-bit mode, CALL32r can only be used in 32-bit mode. LLVM would assume that after picking the appropriate CALLr opcode, a pointer-sized register would be a valid operand, but in x32 mode, which is true for GNUX32a 64-bit mode, even though that uses 32-bit pointers and should therefore either use CALL32r,re 32 bits. or zero-extend before using CALL64r.In this mode, Adjust the checkit is invalid to look at the pointer size instead to usedirectly pass a pointer to CALL32r64r, and adjust the testit needs to allow either a 32-bit or a 64-bit call instructionbe extended to 64 bits first.