[clang] [llvm] [clang][llvm][aarch64] Add aarch64_sme_in_streaming_mode intrinsic (PR #120265)

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 18 06:02:53 PST 2024


================
@@ -8,32 +8,26 @@
 
 // CHECK-LABEL: @test_in_streaming_mode(
 // CHECK-NEXT:  entry:
-// CHECK-NEXT:    [[TMP0:%.*]] = tail call aarch64_sme_preservemost_from_x2 { i64, i64 } @__arm_sme_state() #[[ATTR3:[0-9]+]]
-// CHECK-NEXT:    [[TMP1:%.*]] = extractvalue { i64, i64 } [[TMP0]], 0
-// CHECK-NEXT:    [[AND_I:%.*]] = and i64 [[TMP1]], 1
-// CHECK-NEXT:    [[TOBOOL_I:%.*]] = icmp ne i64 [[AND_I]], 0
-// CHECK-NEXT:    ret i1 [[TOBOOL_I]]
+// CHECK-NEXT:    [[TMP0:%.*]] = tail call i1 @llvm.aarch64.sme.in.streaming.mode()
----------------
sdesmalen-arm wrote:

Can we add a similar test for `__arm_streaming` and non-streaming[-compatible] functions, and change the CodeGen of the builtin to return `true` for streaming functions, and `false` for non-streaming[-compatible] functions, and only call the intrinsic in streaming-compatible functions. For inspiration on how to do this, see the switch statement in `CodeGenFunction::EmitAArch64SVEBuiltinExpr`.

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


More information about the llvm-commits mailing list