[llvm] [X86] Improve llvm.get.active.lane.mask codegen (PR #225832)

via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 1 00:38:39 PDT 2026


================
@@ -56,12 +56,13 @@ define <7 x i1> @create_mask7(i64 %0) {
 define <16 x i1> @create_mask16(i64 %0) {
 ; CHECK-LABEL: create_mask16:
 ; CHECK:       # %bb.0:
-; CHECK-NEXT:    vpbroadcastq zmm0, rdi
-; CHECK-NEXT:    vpcmpnleuq k0, zmm0, zmmword ptr [rip + {{\.?LCPI[0-9]+_[0-9]+}}]
-; CHECK-NEXT:    vpcmpnleuq k1, zmm0, zmmword ptr [rip + {{\.?LCPI[0-9]+_[0-9]+}}]
-; CHECK-NEXT:    kunpckbw k0, k1, k0
+; CHECK-NEXT:    cmp rdi, 16
+; CHECK-NEXT:    mov eax, 16
+; CHECK-NEXT:    cmovb rax, rdi
+; CHECK-NEXT:    mov ecx, -1
+; CHECK-NEXT:    bzhi eax, ecx, eax
+; CHECK-NEXT:    kmovd k0, eax
----------------
Andarwinux wrote:

Why is this not kmovw?

https://github.com/llvm/llvm-project/pull/225832


More information about the llvm-commits mailing list