================
@@ -720,3 +720,548 @@ uint64x2_t test_vaddw_high_u32(uint64x2_t a, uint32x4_t 
b) {
   // LLVM-NEXT:    ret <2 x i64> [[ADD_I]]
   return vaddw_high_u32(a, b);
 }
+
+//===----------------------------------------------------------------------===//
+// 2.1.1.1.3. Narrowing addition
+// 
https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#narrowing-addition
+//===----------------------------------------------------------------------===//
+
+// LLVM-LABEL: @test_vhadd_s8(
+// CIR-LABEL: @vhadd_s8(
+int8x8_t test_vhadd_s8(int8x8_t v1, int8x8_t v2) {
+  // CIR: cir.call_llvm_intrinsic "aarch64.neon.shadd"
+
+  // LLVM: call <8 x i8> @llvm.aarch64.neon.shadd.v8i8(<8 x i8> {{.*}}, <8 x 
i8> {{.*}})
----------------
iamvickynguyen wrote:

Thank you! I've included the args checks.

Before, without `instcombine` (mentioned above), there were bitcasts between 
the args and the call, so tracking the args would mean including the bitcast 
checks. That's why, the original tests skipped tracking the args.

https://github.com/llvm/llvm-project/pull/204989
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to