[llvm-branch-commits] [llvm] release/18.x: [Codegen][X86] Fix /HOTPATCH with clang-cl and inline asm (#87639) (PR #88388)

2024-04-11 Thread Shengchen Kan via llvm-branch-commits

https://github.com/KanRobert approved this pull request.

LGTM

https://github.com/llvm/llvm-project/pull/88388
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] eb64697 - [X86][Codegen] Correct the domain of VP2INTERSECT

2023-11-30 Thread Shengchen Kan via llvm-branch-commits

Author: Shengchen Kan
Date: 2023-11-30T17:56:21+08:00
New Revision: eb64697a7b75d2b22041cc992fad0c8dfa7989cb

URL: 
https://github.com/llvm/llvm-project/commit/eb64697a7b75d2b22041cc992fad0c8dfa7989cb
DIFF: 
https://github.com/llvm/llvm-project/commit/eb64697a7b75d2b22041cc992fad0c8dfa7989cb.diff

LOG: [X86][Codegen] Correct the domain of VP2INTERSECT

GenericDomain -> SSEPackedInt

Found by #73654

Added: 


Modified: 
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.ll
llvm/test/CodeGen/X86/avx512vp2intersect-intrinsics.ll
llvm/test/CodeGen/X86/stack-folding-avx512vp2intersect.ll
llvm/test/CodeGen/X86/vp2intersect_multiple_pairs.ll

Removed: 




diff  --git a/llvm/lib/Target/X86/X86InstrAVX512.td 
b/llvm/lib/Target/X86/X86InstrAVX512.td
index f325f47d46464c3..0514f0d19506707 100644
--- a/llvm/lib/Target/X86/X86InstrAVX512.td
+++ b/llvm/lib/Target/X86/X86InstrAVX512.td
@@ -12875,8 +12875,10 @@ multiclass avx512_vp2intersect;
 defm VP2INTERSECTQ : avx512_vp2intersect, 
REX_W;
+}
 
 multiclass avx512_binop_all2 opc, string OpcodeStr,
  X86SchedWriteWidths sched,

diff  --git a/llvm/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.ll 
b/llvm/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.ll
index ef07d30299e9dad..9741972767bcdcd 100644
--- a/llvm/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.ll
+++ b/llvm/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.ll
@@ -84,7 +84,7 @@ define void @test_mm256_2intersect_epi32_p(ptr nocapture 
readonly %a, ptr nocapt
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x0c]
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x08]
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x04]
-; X86-NEXT:vmovaps (%edx), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xfc,0x28,0x02]
+; X86-NEXT:vmovdqa (%edx), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xfd,0x6f,0x02]
 ; X86-NEXT:vp2intersectd (%ecx), %ymm0, %k0 # encoding: 
[0x62,0xf2,0x7f,0x28,0x68,0x01]
 ; X86-NEXT:kmovw %k1, %ecx # encoding: [0xc5,0xf8,0x93,0xc9]
 ; X86-NEXT:kmovw %k0, %edx # encoding: [0xc5,0xf8,0x93,0xd0]
@@ -96,7 +96,7 @@ define void @test_mm256_2intersect_epi32_p(ptr nocapture 
readonly %a, ptr nocapt
 ;
 ; X64-LABEL: test_mm256_2intersect_epi32_p:
 ; X64:   # %bb.0: # %entry
-; X64-NEXT:vmovaps (%rdi), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xfc,0x28,0x07]
+; X64-NEXT:vmovdqa (%rdi), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xfd,0x6f,0x07]
 ; X64-NEXT:vp2intersectd (%rsi), %ymm0, %k0 # encoding: 
[0x62,0xf2,0x7f,0x28,0x68,0x06]
 ; X64-NEXT:kmovw %k1, %eax # encoding: [0xc5,0xf8,0x93,0xc1]
 ; X64-NEXT:kmovw %k0, %esi # encoding: [0xc5,0xf8,0x93,0xf0]
@@ -125,7 +125,7 @@ define void @test_mm256_2intersect_epi64_p(ptr nocapture 
readonly %a, ptr nocapt
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
-; X86-NEXT:vmovaps (%esi), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xfc,0x28,0x06]
+; X86-NEXT:vmovdqa (%esi), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xfd,0x6f,0x06]
 ; X86-NEXT:vp2intersectq (%edx), %ymm0, %k0 # encoding: 
[0x62,0xf2,0xff,0x28,0x68,0x02]
 ; X86-NEXT:kshiftlw $12, %k0, %k2 # encoding: 
[0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
 ; X86-NEXT:kshiftrw $12, %k2, %k2 # encoding: 
[0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -142,7 +142,7 @@ define void @test_mm256_2intersect_epi64_p(ptr nocapture 
readonly %a, ptr nocapt
 ;
 ; X64-LABEL: test_mm256_2intersect_epi64_p:
 ; X64:   # %bb.0: # %entry
-; X64-NEXT:vmovaps (%rdi), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xfc,0x28,0x07]
+; X64-NEXT:vmovdqa (%rdi), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xfd,0x6f,0x07]
 ; X64-NEXT:vp2intersectq (%rsi), %ymm0, %k0 # encoding: 
[0x62,0xf2,0xff,0x28,0x68,0x06]
 ; X64-NEXT:kshiftlw $12, %k0, %k2 # encoding: 
[0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
 ; X64-NEXT:kshiftrw $12, %k2, %k2 # encoding: 
[0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -175,7 +175,7 @@ define void @test_mm256_2intersect_epi32_b(ptr nocapture 
readonly %a, ptr nocapt
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x0c]
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x08]
 ; X86-NEXT:movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x04]
-; X86-NEXT:vbroadcastss (%edx), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc4,0xe2,0x7d,0x18,0x02]
+; X86-NEXT:vpbroadcastd (%edx), %ymm0 # EVEX TO VEX Compression encoding: 
[0xc4,0xe2,0x7d,0x58,0x02]
 ; X86-NEXT:vp2intersectd (%ecx){1to8}, %ymm0, %k0 # encoding: 
[0x62,0xf2,0x7f,0x38,0x68,0x01]
 ;

[llvm-branch-commits] [llvm] ae3cd2d - [X86][NFC] Clang-format X86FoldTablesUtils.h

2023-11-30 Thread Shengchen Kan via llvm-branch-commits

Author: Shengchen Kan
Date: 2023-11-30T17:16:40+08:00
New Revision: ae3cd2d04a88937881ac1f9c5d34f0e0cf96d5bc

URL: 
https://github.com/llvm/llvm-project/commit/ae3cd2d04a88937881ac1f9c5d34f0e0cf96d5bc
DIFF: 
https://github.com/llvm/llvm-project/commit/ae3cd2d04a88937881ac1f9c5d34f0e0cf96d5bc.diff

LOG: [X86][NFC] Clang-format X86FoldTablesUtils.h

Added: 


Modified: 
llvm/include/llvm/Support/X86FoldTablesUtils.h

Removed: 




diff  --git a/llvm/include/llvm/Support/X86FoldTablesUtils.h 
b/llvm/include/llvm/Support/X86FoldTablesUtils.h
index bddff7068b82690..1cce9cdaf65f8d6 100644
--- a/llvm/include/llvm/Support/X86FoldTablesUtils.h
+++ b/llvm/include/llvm/Support/X86FoldTablesUtils.h
@@ -13,23 +13,23 @@ namespace llvm {
 enum {
   // Select which memory operand is being unfolded.
   // (stored in bits 0 - 2)
-  TB_INDEX_0= 0,
-  TB_INDEX_1= 1,
-  TB_INDEX_2= 2,
-  TB_INDEX_3= 3,
-  TB_INDEX_4= 4,
+  TB_INDEX_0 = 0,
+  TB_INDEX_1 = 1,
+  TB_INDEX_2 = 2,
+  TB_INDEX_3 = 3,
+  TB_INDEX_4 = 4,
   TB_INDEX_MASK = 0x7,
 
   // Do not insert the reverse map (MemOp -> RegOp) into the table.
   // This may be needed because there is a many -> one mapping.
-  TB_NO_REVERSE   = 1 << 3,
+  TB_NO_REVERSE = 1 << 3,
 
   // Do not insert the forward map (RegOp -> MemOp) into the table.
   // This is needed for Native Client, which prohibits branch
   // instructions from using a memory operand.
-  TB_NO_FORWARD   = 1 << 4,
+  TB_NO_FORWARD = 1 << 4,
 
-  TB_FOLDED_LOAD  = 1 << 5,
+  TB_FOLDED_LOAD = 1 << 5,
   TB_FOLDED_STORE = 1 << 6,
   TB_FOLDED_BCAST = 1 << 7,
 
@@ -37,19 +37,19 @@ enum {
   // Used for RegOp->MemOp conversion. Encoded as Log2(Align)
   // (stored in bits 9 - 11)
   TB_ALIGN_SHIFT = 8,
-  TB_ALIGN_1 =   0 << TB_ALIGN_SHIFT,
-  TB_ALIGN_16=   4 << TB_ALIGN_SHIFT,
-  TB_ALIGN_32=   5 << TB_ALIGN_SHIFT,
-  TB_ALIGN_64=   6 << TB_ALIGN_SHIFT,
-  TB_ALIGN_MASK  = 0x7 << TB_ALIGN_SHIFT,
+  TB_ALIGN_1 = 0 << TB_ALIGN_SHIFT,
+  TB_ALIGN_16 = 4 << TB_ALIGN_SHIFT,
+  TB_ALIGN_32 = 5 << TB_ALIGN_SHIFT,
+  TB_ALIGN_64 = 6 << TB_ALIGN_SHIFT,
+  TB_ALIGN_MASK = 0x7 << TB_ALIGN_SHIFT,
 
   // Broadcast type.
   // (stored in bits 12 - 13)
   TB_BCAST_TYPE_SHIFT = TB_ALIGN_SHIFT + 3,
-  TB_BCAST_D=   0 << TB_BCAST_TYPE_SHIFT,
-  TB_BCAST_Q=   1 << TB_BCAST_TYPE_SHIFT,
-  TB_BCAST_SS   =   2 << TB_BCAST_TYPE_SHIFT,
-  TB_BCAST_SD   =   3 << TB_BCAST_TYPE_SHIFT,
+  TB_BCAST_D = 0 << TB_BCAST_TYPE_SHIFT,
+  TB_BCAST_Q = 1 << TB_BCAST_TYPE_SHIFT,
+  TB_BCAST_SS = 2 << TB_BCAST_TYPE_SHIFT,
+  TB_BCAST_SD = 3 << TB_BCAST_TYPE_SHIFT,
   TB_BCAST_MASK = 0x3 << TB_BCAST_TYPE_SHIFT,
 
   // Unused bits 14-15



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] PR for llvm/llvm-project#79675 (PR #79721)

2024-01-27 Thread Shengchen Kan via llvm-branch-commits

KanRobert wrote:

> > @phoebewang What do you think about merging this PR to the release branch?
> 
> This patch fixes prior mistakes, so should be merged to release branch. 
> @KanRobert Do I understand it right?

Agree, though I haven't notice any runfail due to this mistake.

https://github.com/llvm/llvm-project/pull/79721
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] release/19.x: [X86][APX] Fix wrong encoding of promoted KMOV instructions due to missing NoCD8 (#109759) (PR #109767)

2024-09-24 Thread Shengchen Kan via llvm-branch-commits

KanRobert wrote:

> @KanRobert @KanRobert What do you think about merging this PR to the release 
> branch?

LGTM

https://github.com/llvm/llvm-project/pull/109767
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] release/19.x: [X86][APX] Fix wrong encoding of promoted KMOV instructions due to missing NoCD8 (#109759) (PR #109767)

2024-09-24 Thread Shengchen Kan via llvm-branch-commits

https://github.com/KanRobert approved this pull request.


https://github.com/llvm/llvm-project/pull/109767
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits