summaryrefslogtreecommitdiffstats
path: root/crypto/modes/asm/aes-gcm-avx512.pl
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/modes/asm/aes-gcm-avx512.pl')
-rw-r--r--crypto/modes/asm/aes-gcm-avx512.pl13
1 files changed, 11 insertions, 2 deletions
diff --git a/crypto/modes/asm/aes-gcm-avx512.pl b/crypto/modes/asm/aes-gcm-avx512.pl
index 122183b4ff..41d91ef710 100644
--- a/crypto/modes/asm/aes-gcm-avx512.pl
+++ b/crypto/modes/asm/aes-gcm-avx512.pl
@@ -59,8 +59,17 @@ if (!$avx512vaes
$avx512vaes = ($1 == 2.13 && $2 >= 3) + ($1 >= 2.14);
}
-if (!$avx512vaes && `$ENV{CC} -v 2>&1` =~ /((?:clang|LLVM) version|.*based on LLVM) ([0-9]+\.[0-9]+)/) {
- $avx512vaes = ($2 >= 7.0);
+if (!$avx512vaes && `$ENV{CC} -v 2>&1`
+ =~ /(Apple)?\s*((?:clang|LLVM) version|.*based on LLVM) ([0-9]+)\.([0-9]+)\.([0-9]+)?/) {
+ my $ver = $3 + $4/100.0 + $5/10000.0; # 3.1.0->3.01, 3.10.1->3.1001
+ if ($1) {
+ # Apple conditions, they use a different version series, see
+ # https://en.wikipedia.org/wiki/Xcode#Xcode_7.0_-_10.x_(since_Free_On-Device_Development)_2
+ # clang 7.0.0 is Apple clang 10.0.1
+ $avx512vaes = ($ver>=10.0001)
+ } else {
+ $avx512vaes = ($ver>=7.0);
+ }
}
open OUT, "| \"$^X\" \"$xlate\" $flavour \"$output\""