<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <font size="-1">Though I couldn't reproduce the issue, I noticed a
      typo that could lead to it.<br>
      <br>
      Committed r350986 to fix it.<br>
      <br>
      Thank you,<br>
    </font>
    <pre class="moz-signature" cols="72">-- 
Evandro Menezes

</pre>
    <div class="moz-cite-prefix">On 01/11/19 17:35, Evandro Menezes
      wrote:<br>
    </div>
    <blockquote cite="mid:5C39285E.1030702@samsung.com" type="cite">
      <meta http-equiv="Context-Type" content="text/html; charset=utf-8">
      This seems to be a fluke.<br>
      <br>
      The attribute value of 4 is correct.  This value corresponds to
      ARMv8.1-a, which is implied by ARMv8.2-a, which was changed in <a
        moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://is.gd/fcYj7x"><a class="moz-txt-link-freetext" href="https://is.gd/fcYj7x">https://is.gd/fcYj7x</a></a> in the same
      patch.  The value of 3 should never be emitted with this patch.<br>
      <br>
      As I continue investigating this issue, I'd appreciate if anyone
      could independently verify it.<br>
      <br>
      Thank you,<br>
      <pre class="moz-signature" cols="72">-- 
Evandro Menezes

</pre>
      <div class="moz-cite-prefix">On 01/11/19 16:42, Evandro Menezes
        wrote:<br>
      </div>
      <blockquote cite="mid:5C391BEA.9080209@samsung.com" type="cite"> I
        cannot reproduce it:<br>
        <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>
        Will continue looking...<br>
        <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">
          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>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>