The constraint "0" in the following asm did not consider the its relationship with "=y" when try to replace the type of the operands.
asm ("nop" : "=y"(Mu8_1 ) : "0"(Mu8_0 ));
test case:
typedef unsigned char __attribute__((vector_size(8))) _m64u8; int main(void){ _m64u8 __attribute__((aligned(16))) Mu8_0, __attribute__((aligned(16))) Mu8_1; asm ("nop" : "=y"(Mu8_1 ) : "0"(Mu8_0 )); return 0; }
Test belongs in test/CodeGen. Please use -emit-llvm and FileCheck the IR, instead of checking how the backend handles it. Shouldn't require x86-registered-target (the x86 frontend bits are always compiled in).
Actually, you could probably stick the function into the existing test test/CodeGen/asm-inout.c, which has another similar test.