[clang] [Clang] Remove 3-element vector load and store special handling (PR #104661)
Shilei Tian via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 12 20:35:12 PST 2024
================
@@ -45,7 +45,7 @@ void test3(packedfloat3 *p) {
*p = (packedfloat3) { 3.2f, 2.3f, 0.1f };
}
// CHECK: @test3(
-// CHECK: store <4 x float> {{.*}}, align 4
+// CHECK: store <3 x float> {{.*}}, align 4
----------------
shiltian wrote:
I took another look and this is not only a target option. For example, if it is hlsl, no matter what target it is (spir-v or dxil), vec3 is preserved. I tried to add a function `TargetInfo::getOptimalVectorNumElements(const llvm::FixedVectorType *)`, but it can't cover the language related stuff. If we add an extra argument, like `bool IsHLSL)`, it is too ugly.
https://github.com/llvm/llvm-project/pull/104661
More information about the cfe-commits
mailing list