When targetting MIPS64R6 some of the patterns for select were guarded by a
broken predicate. The predicate was supposed to test if a constant value
could fit in a 16 bit zero-extended field. Instead the value was tested to
fit in a 16 bit sign-extended field. For negative constants of native word
width this resulted in wrong code generation.
Details
Details
- Reviewers
dsanders vkalintiris
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Daniel, Vasileios, if this can be merged today (assuming it's an obvious fix), we could push Google for getting it into next clang binary (later today or Monday). Otherwise, we will likely have to wait another month or so.
Comment Actions
LGTM with the addition of one test for the M3 prefix.
test/CodeGen/Mips/llvm-ir/select-int.ll | ||
---|---|---|
165 | This label is different from the function's name. |
Comment Actions
Well spotted. LGTM with the changes Vasileios requested and an indentation nit.
Normally you should abandon the patch and re-submit with llvm-commits CC'd. This is because the commit message and patch aren't sent to the mailing list unless it's CC'd from the start.
test/CodeGen/Mips/llvm-ir/select-int.ll | ||
---|---|---|
196–197 | Indentation |
This label is different from the function's name.