================ @@ -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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits