The V_MQSAD_PK_U16_U8, V_QSAD_PK_U16_U8, and V_MQSAD_U32_U8 take more than 1 pass in hardware. For these three instructions, the destination registers must be different than all sources so that the first pass does not overwrite sources for the following passes.
Details
Diff Detail
Event Timeline
test/CodeGen/AMDGPU/llvm.amdgcn.mqsad.pk.u16.u8.ll | ||
---|---|---|
7–9 | You still need a positive check that the instruction was emitted with the proper register class. I also don't think FileCheck supports matching variables that appear later in the same line |
test/CodeGen/AMDGPU/llvm.amdgcn.mqsad.pk.u16.u8.ll | ||
---|---|---|
7–9 | I'll update the test re: register class. As far as FileCheck goes: it seems to work and documentation seems to say that it should work ( "Variables can also be used later on the same line they were defined on" , which is from http://llvm.org/docs/CommandGuide/FileCheck.html#filecheck-variables ). |
test/CodeGen/AMDGPU/llvm.amdgcn.mqsad.pk.u16.u8.ll | ||
---|---|---|
7–9 | Do not you need to switch order of checks? If FileCheck first will match positive pattern it will start matching from there, so negative check will not work. |
test/CodeGen/AMDGPU/llvm.amdgcn.mqsad.pk.u16.u8.ll | ||
---|---|---|
2 | It would be a good idea to add -enable-var-scope to FileCheck |
It would be a good idea to add -enable-var-scope to FileCheck