[clang] [CIR][LLVMLowering] Upstream binary operators for VectorType (PR #140099)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Thu May 15 12:05:22 PDT 2025


================
@@ -400,4 +400,165 @@ void foo9() {
 // OGCG: %[[TMP_A:.*]] = load <4 x i32>, ptr %[[VEC_A]], align 16
 // OGCG: %[[TMP_B:.*]] = load <4 x i32>, ptr %[[VEC_B]], align 16
 // OGCG: %[[SHR:.*]] = ashr <4 x i32> %[[TMP_A]], %[[TMP_B]]
-// OGCG: store <4 x i32> %[[SHR]], ptr %[[SHR_RES]], align 16
\ No newline at end of file
+// OGCG: store <4 x i32> %[[SHR]], ptr %[[SHR_RES]], align 16
+
+void foo11() {
+  vi4 a = {1, 2, 3, 4};
+  vi4 b = {5, 6, 7, 8};
+
+  vi4 c = a + b;
+  vi4 d = a - b;
+  vi4 e = a * b;
+  vi4 f = a / b;
+  vi4 g = a % b;
+  vi4 h = a & b;
+  vi4 i = a | b;
+  vi4 j = a ^ b;
+}
+
+// CIR: %[[VEC_A:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["a", init]
----------------
andykaylor wrote:

This is checking for a lot more than is relevant to this test. Can you strip the checks down to the actual binary operations?

https://github.com/llvm/llvm-project/pull/140099


More information about the cfe-commits mailing list