[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-02-11 Thread Mirko Brkusanin via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG5ba931a84a34: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores. (authored by mbrkusanin). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D73644/new

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-02-11 Thread Mirko Brkusanin via Phabricator via cfe-commits
mbrkusanin updated this revision to Diff 243775. mbrkusanin edited the summary of this revision. mbrkusanin added a comment. - Rebase - Rename **ldrq_w** to **ldr_w**; Rename **strq_w** to **str_w**. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D73644/new/ https://reviews.llvm.org/D73

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-02-10 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan accepted this revision. atanasyan added a comment. This revision is now accepted and ready to land. Looking good to me as-is. - Current naming is okay. But what do you think about reducing name of //quarter// intrinsics: `__builtin_msa_ldr_w` instead of `__builtin_msa_ldrq_w`? Will it

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-02-07 Thread Mirko Brkusanin via Phabricator via cfe-commits
mbrkusanin added a comment. Not yet, a proposal was made to both GCC and LLVM and as far as I can tell no work was done on GCC yet. If we accept these names I'll let them know so we end up with matching names. As for 4/8 byte loads, in case of having them implemented as **ld** plus some extra

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-02-07 Thread Mirko Brkusanin via Phabricator via cfe-commits
mbrkusanin added a comment. Rebase. Not yet, a proposal was made to both GCC and LLVM and as far as I can tell no work was done on that yet. If we accept these names I'll let them know so we end up with matching names. As for 4/8 byte loads, in case of having them implemented as **ld** plus so

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-02-07 Thread Mirko Brkusanin via Phabricator via cfe-commits
mbrkusanin updated this revision to Diff 243153. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D73644/new/ https://reviews.llvm.org/D73644 Files: clang/include/clang/Basic/BuiltinsMips.def clang/lib/Headers/msa.h clang/lib/Sema/SemaChecking.cpp llvm/include/llvm/IR/IntrinsicsMips.

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-02-06 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan added a comment. I see, thanks. Is there the same or similar functionality in GCC? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D73644/new/ https://reviews.llvm.org/D73644 ___ cfe-commits mai

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-01-30 Thread Mirko Brkusanin via Phabricator via cfe-commits
mbrkusanin added a comment. We could do that for loads. For example on Mips32r5 (where we need most instructions) for intrinsic **ldr_d** instead of: lwr $1, 16($5) lwl $1, 19($5) lwr $2, 20($5) lwl $2, 23($5) fill.w $w0, $1 insert

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-01-30 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan added a comment. Is it possible to emulate these new intrinsics using existing ones and some additional code? Is code generated in this case much larger/slower then the code generated by the new intrinsics? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://re

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-01-29 Thread Mirko Brkusanin via Phabricator via cfe-commits
mbrkusanin added a comment. A few notes/questions: 1. Generated code was tested with Qemu: - For mips32r5 Qemu provides p5600 - For mips64r6 Qemu provides i6400 - For mips64r5 there is no cpu on Qemu with MSA and it appears that there won't be any hardware with Mips64r5 and MSA. - For mi

[PATCH] D73644: [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores.

2020-01-29 Thread Mirko Brkusanin via Phabricator via cfe-commits
mbrkusanin created this revision. mbrkusanin added reviewers: atanasyan, petarj, sdardis, mstojanovic. mbrkusanin added projects: LLVM, clang. Herald added subscribers: cfe-commits, jrtc27, hiraditya, arichardson. New intrinisics are implemented for when we need to port SIMD code from other arhit