<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<font size="-1">I cannot reproduce it:<br>
</font>
<blockquote>
<pre>bin/llc -o - -mtriple=armv8-linux-gnueabi -mcpu=exynos-m4 ~/src/llvm.svn/test/CodeGen/ARM/build-attributes.ll |& egrep eabi_attribute.+12
.eabi_attribute 12, 4 @ Tag_Advanced_SIMD_arch
</pre>
</blockquote>
<font size="-1">Will continue looking...<br>
</font>
<pre class="moz-signature" cols="72">--
Evandro Menezes
</pre>
<div class="moz-cite-prefix">On 01/11/19 16:31, Evandro Menezes
wrote:<br>
</div>
<blockquote cite="mid:5C39195C.7040508@samsung.com" type="cite">
<meta http-equiv="Context-Type" content="text/html; charset=utf-8">
On it!<br>
<pre class="moz-signature" cols="72">--
Evandro Menezes
</pre>
<div class="moz-cite-prefix">On 01/11/19 15:52, Matt Morehouse
wrote:<br>
</div>
<blockquote
cite="mid:CAHkmTt5H2avyYtsP1ZOONov=GRLxUN+wciX-FbqoE2x2bui17Q@mail.gmail.com"
type="cite">
<div dir="ltr">
<div dir="ltr">Hi Evandro,
<div><br>
</div>
<div>This broke <a moz-do-not-send="true"
href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/28124">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/28124</a>:</div>
<div><br>
</div>
<div>
<pre><span class="gmail-stdout">Command Output (stderr):
--
/b/sanitizer-x86_64-linux-fast/build/llvm/test/CodeGen/ARM/build-attributes.ll:1626:14: error: EXYNOS-M4: expected string not found in input
; EXYNOS-M4: .eabi_attribute 12, 4
^
<stdin>:10:2: note: scanning from here
.eabi_attribute 12, 3 @ Tag_Advanced_SIMD_arch
^
</span></pre>
Please take a look.</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr">On Fri, Jan 11, 2019 at 10:58 AM Evandro
Menezes via llvm-commits <<a moz-do-not-send="true"
href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote">Author: evandro<br>
Date: Fri Jan 11 10:54:25 2019<br>
New Revision: 350953<br>
<br>
URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project?rev=350953&view=rev"
rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=350953&view=rev</a><br>
Log:<br>
[AArch64] Create feature set for Exynos M4<br>
<br>
Complete the feature set for Exynos M4 and update test
cases.<br>
<br>
Modified:<br>
  llvm/trunk/include/llvm/Support/AArch64TargetParser.def<br>
  llvm/trunk/include/llvm/Support/ARMTargetParser.def<br>
  llvm/trunk/lib/Target/AArch64/AArch64.td<br>
  llvm/trunk/lib/Target/ARM/ARM.td<br>
  llvm/trunk/test/CodeGen/ARM/build-attributes.ll<br>
  llvm/trunk/unittests/Support/TargetParserTest.cpp<br>
<br>
Modified:
llvm/trunk/include/llvm/Support/AArch64TargetParser.def<br>
URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/AArch64TargetParser.def?rev=350953&r1=350952&r2=350953&view=diff"
rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/AArch64TargetParser.def?rev=350953&r1=350952&r2=350953&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Support/AArch64TargetParser.def
(original)<br>
+++ llvm/trunk/include/llvm/Support/AArch64TargetParser.def
Fri Jan 11 10:54:25 2019<br>
@@ -102,8 +102,8 @@ AARCH64_CPU_NAME("exynos-m2", ARMV8A, FK<br>
         (AArch64::AEK_CRC))<br>
 AARCH64_CPU_NAME("exynos-m3", ARMV8A,
FK_CRYPTO_NEON_FP_ARMV8, false,<br>
         (AArch64::AEK_CRC))<br>
-AARCH64_CPU_NAME("exynos-m4", ARMV8A,
FK_CRYPTO_NEON_FP_ARMV8, false,<br>
-Â Â Â Â Â Â Â Â (AArch64::AEK_CRC))<br>
+AARCH64_CPU_NAME("exynos-m4", ARMV8_2A,
FK_CRYPTO_NEON_FP_ARMV8, false,<br>
+Â Â Â Â Â Â Â Â (AArch64::AEK_FP16 | AArch64::AEK_DOTPROD))<br>
 AARCH64_CPU_NAME("falkor", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8,
false,<br>
         (AArch64::AEK_CRC | AArch64::AEK_RDM))<br>
 AARCH64_CPU_NAME("saphira", ARMV8_3A,
FK_CRYPTO_NEON_FP_ARMV8, false,<br>
<br>
Modified:
llvm/trunk/include/llvm/Support/ARMTargetParser.def<br>
URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/ARMTargetParser.def?rev=350953&r1=350952&r2=350953&view=diff"
rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/ARMTargetParser.def?rev=350953&r1=350952&r2=350953&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Support/ARMTargetParser.def
(original)<br>
+++ llvm/trunk/include/llvm/Support/ARMTargetParser.def Fri
Jan 11 10:54:25 2019<br>
@@ -266,7 +266,8 @@ ARM_CPU_NAME("cyclone", ARMV8A, FK_CRYPT<br>
 ARM_CPU_NAME("exynos-m1", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8,
false, ARM::AEK_CRC)<br>
 ARM_CPU_NAME("exynos-m2", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8,
false, ARM::AEK_CRC)<br>
 ARM_CPU_NAME("exynos-m3", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8,
false, ARM::AEK_CRC)<br>
-ARM_CPU_NAME("exynos-m4", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8,
false, ARM::AEK_CRC)<br>
+ARM_CPU_NAME("exynos-m4", ARMV8_2A,
FK_CRYPTO_NEON_FP_ARMV8, false,<br>
+Â Â Â Â Â Â Â (ARM::AEK_FP16 | ARM::AEK_DOTPROD))<br>
 ARM_CPU_NAME("kryo", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8,
false, ARM::AEK_CRC)<br>
 // Non-standard Arch names.<br>
 ARM_CPU_NAME("iwmmxt", IWMMXT, FK_NONE, true,
ARM::AEK_NONE)<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/AArch64.td<br>
URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64.td?rev=350953&r1=350952&r2=350953&view=diff"
rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64.td?rev=350953&r1=350952&r2=350953&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AArch64/AArch64.td (original)<br>
+++ llvm/trunk/lib/Target/AArch64/AArch64.td Fri Jan 11
10:54:25 2019<br>
@@ -540,6 +540,25 @@ def ProcExynosM3 :
SubtargetFeature<"exy<br>
                  Â
FeaturePredictableSelectIsExpensive,<br>
                  Â
FeatureZCZeroingFP]>;<br>
<br>
+def ProcExynosM4 : SubtargetFeature<"exynosm4",
"ARMProcFamily", "ExynosM3",<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "Samsung Exynos-M4
processors",<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â [HasV8_2aOps,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 FeatureArithmeticBccFusion,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 FeatureArithmeticCbzFusion,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureCrypto,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureDotProd,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 FeatureExynosCheapAsMoveHandling,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 FeatureForce32BitJumpTables,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureFP16FML,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureFuseAddress,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureFuseAES,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureFuseCCSelect,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureFuseLiterals,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureLSLFast,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeaturePerfMon,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 FeaturePostRAScheduler,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FeatureZCZeroing]>;<br>
+<br>
 def ProcKryo  : SubtargetFeature<"kryo",
"ARMProcFamily", "Kryo",<br>
                  "Qualcomm Kryo
processors", [<br>
                  FeatureCRC,<br>
@@ -677,7 +696,7 @@ def : ProcessorModel<"cyclone",
CycloneM<br>
 def : ProcessorModel<"exynos-m1", ExynosM1Model,
[ProcExynosM1]>;<br>
 def : ProcessorModel<"exynos-m2", ExynosM1Model,
[ProcExynosM2]>;<br>
 def : ProcessorModel<"exynos-m3", ExynosM3Model,
[ProcExynosM3]>;<br>
-def : ProcessorModel<"exynos-m4", ExynosM3Model,
[ProcExynosM3]>;<br>
+def : ProcessorModel<"exynos-m4", ExynosM3Model,
[ProcExynosM4]>;<br>
 def : ProcessorModel<"falkor", FalkorModel,
[ProcFalkor]>;<br>
 def : ProcessorModel<"saphira", FalkorModel,
[ProcSaphira]>;<br>
 def : ProcessorModel<"kryo", KryoModel, [ProcKryo]>;<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/ARM.td<br>
URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARM.td?rev=350953&r1=350952&r2=350953&view=diff"
rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARM.td?rev=350953&r1=350952&r2=350953&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/ARM/ARM.td (original)<br>
+++ llvm/trunk/lib/Target/ARM/ARM.td Fri Jan 11 10:54:25
2019<br>
@@ -1079,6 +1079,9 @@ def : ProcNoItin<"exynos-m1",<br>
 def : ProcNoItin<"exynos-m2",            Â
 [ARMv8a, ProcExynos]>;<br>
 def : ProcNoItin<"exynos-m3",            Â
 [ARMv8a, ProcExynos]>;<br>
 def : ProcNoItin<"exynos-m4",            Â
 [ARMv8a, ProcExynos]>;<br>
+def : ProcNoItin<"exynos-m4",            Â
 [ARMv82a, ProcExynos,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 FeatureFullFP16,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 FeatureDotProd]>;<br>
<br>
 def : ProcNoItin<"kryo",               Â
[ARMv8a, ProcKryo,<br>
                            Â
FeatureHWDivThumb,<br>
<br>
Modified: llvm/trunk/test/CodeGen/ARM/build-attributes.ll<br>
URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/build-attributes.ll?rev=350953&r1=350952&r2=350953&view=diff"
rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/build-attributes.ll?rev=350953&r1=350952&r2=350953&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/ARM/build-attributes.ll
(original)<br>
+++ llvm/trunk/test/CodeGen/ARM/build-attributes.ll Fri Jan
11 10:54:25 2019<br>
@@ -1623,7 +1623,7 @@<br>
 ; EXYNOS-M4: .eabi_attribute 8, 1<br>
 ; EXYNOS-M4: .eabi_attribute 9, 2<br>
 ; EXYNOS-M4: .fpu crypto-neon-fp-armv8<br>
-; EXYNOS-M4:Â .eabi_attribute 12, 3<br>
+; EXYNOS-M4:Â .eabi_attribute 12, 4<br>
 ; EXYNOS-M4-NOT: .eabi_attribute 27<br>
 ; EXYNOS-M4: .eabi_attribute 36, 1<br>
 ; EXYNOS-M4: .eabi_attribute 42, 1<br>
<br>
Modified: llvm/trunk/unittests/Support/TargetParserTest.cpp<br>
URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/TargetParserTest.cpp?rev=350953&r1=350952&r2=350953&view=diff"
rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/TargetParserTest.cpp?rev=350953&r1=350952&r2=350953&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/unittests/Support/TargetParserTest.cpp
(original)<br>
+++ llvm/trunk/unittests/Support/TargetParserTest.cpp Fri
Jan 11 10:54:25 2019<br>
@@ -265,11 +265,12 @@ TEST(TargetParserTest, testARMCPU) {<br>
             ARM::AEK_VIRT | ARM::AEK_HWDIVARM
|<br>
             ARM::AEK_HWDIVTHUMB |
ARM::AEK_DSP,<br>
             "8-A"));<br>
-Â EXPECT_TRUE(testARMCPU("exynos-m4", "armv8-a",
"crypto-neon-fp-armv8",<br>
+Â EXPECT_TRUE(testARMCPU("exynos-m4", "armv8.2-a",
"crypto-neon-fp-armv8",<br>
             ARM::AEK_CRC | ARM::AEK_SEC |
ARM::AEK_MP |<br>
             ARM::AEK_VIRT | ARM::AEK_HWDIVARM
|<br>
-Â Â Â Â Â Â Â Â Â Â Â Â Â ARM::AEK_HWDIVTHUMB |
ARM::AEK_DSP,<br>
-Â Â Â Â Â Â Â Â Â Â Â Â Â "8-A"));<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP
| ARM::AEK_DOTPROD |<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â ARM::AEK_FP16 | ARM::AEK_RAS,<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â "8.2-A"));<br>
  EXPECT_TRUE(testARMCPU("cortex-m23", "armv8-m.base",
"none",<br>
             ARM::AEK_HWDIVTHUMB,
"8-M.Baseline"));<br>
  EXPECT_TRUE(testARMCPU("cortex-m33", "armv8-m.main",
"fpv5-sp-d16",<br>
@@ -759,9 +760,11 @@ TEST(TargetParserTest, testAArch64CPU)
{<br>
    AArch64::AEK_CRC | AArch64::AEK_CRYPTO |
AArch64::AEK_FP |<br>
    AArch64::AEK_SIMD, "8-A"));<br>
  EXPECT_TRUE(testAArch64CPU(<br>
-Â Â Â "exynos-m4", "armv8-a", "crypto-neon-fp-armv8",<br>
-Â Â Â AArch64::AEK_CRC | AArch64::AEK_CRYPTO |
AArch64::AEK_FP |<br>
-Â Â Â AArch64::AEK_SIMD, "8-A"));<br>
+Â Â Â "exynos-m4", "armv8.2-a", "crypto-neon-fp-armv8",<br>
+Â Â Â AArch64::AEK_CRC | AArch64::AEK_CRYPTO |<br>
+Â Â Â AArch64::AEK_DOTPROD | AArch64::AEK_FP |
AArch64::AEK_FP16 |<br>
+Â Â Â AArch64::AEK_LSE | AArch64::AEK_RAS |
AArch64::AEK_RDM |<br>
+Â Â Â AArch64::AEK_SIMD, "8.2-A"));<br>
  EXPECT_TRUE(testAArch64CPU(<br>
    "falkor", "armv8-a", "crypto-neon-fp-armv8",<br>
    AArch64::AEK_CRC | AArch64::AEK_CRYPTO |
AArch64::AEK_FP |<br>
@@ -870,8 +873,16 @@ TEST(TargetParserTest,
testAArch64Extens<br>
                 Â
 AArch64::ArchKind::INVALID, "ras"));<br>
  EXPECT_FALSE(testAArch64Extension("exynos-m3",<br>
                 Â
 AArch64::ArchKind::INVALID, "ras"));<br>
+Â EXPECT_TRUE(testAArch64Extension("exynos-m4",<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 AArch64::ArchKind::INVALID, "lse"));<br>
+Â EXPECT_TRUE(testAArch64Extension("exynos-m4",<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 AArch64::ArchKind::INVALID, "rdm"));<br>
+Â EXPECT_TRUE(testAArch64Extension("exynos-m4",<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 AArch64::ArchKind::INVALID, "ras"));<br>
  EXPECT_FALSE(testAArch64Extension("exynos-m4",<br>
-Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AArch64::ArchKind::INVALID, "ras"));<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AArch64::ArchKind::INVALID, "fullfp16"));<br>
+Â EXPECT_TRUE(testAArch64Extension("exynos-m4",<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
 AArch64::ArchKind::INVALID, "dotprod"));<br>
  EXPECT_TRUE(testAArch64Extension("falkor",<br>
                 Â
AArch64::ArchKind::INVALID, "rdm"));<br>
  EXPECT_FALSE(testAArch64Extension("kryo",<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a moz-do-not-send="true"
href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a moz-do-not-send="true"
href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits"
rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote>
</div>
</blockquote>
<br>
</blockquote>
<br>
</body>
</html>