| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc < %s --mtriple=x86_64-- -mcpu=cascadelake | FileCheck %s |
| |
| define <3 x i1> @repro(i1 %cond) { |
| ; CHECK-LABEL: repro: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: testb $1, %dil |
| ; CHECK-NEXT: jne .LBB0_1 |
| ; CHECK-NEXT: # %bb.2: |
| ; CHECK-NEXT: kxorw %k0, %k0, %k0 |
| ; CHECK-NEXT: jmp .LBB0_3 |
| ; CHECK-NEXT: .LBB0_1: |
| ; CHECK-NEXT: kxnorw %k0, %k0, %k0 |
| ; CHECK-NEXT: .LBB0_3: |
| ; CHECK-NEXT: kshiftrb $1, %k0, %k1 |
| ; CHECK-NEXT: kmovd %k1, %edx |
| ; CHECK-NEXT: kshiftrb $2, %k0, %k1 |
| ; CHECK-NEXT: kmovd %k1, %ecx |
| ; CHECK-NEXT: kmovd %k0, %eax |
| ; CHECK-NEXT: # kill: def $al killed $al killed $eax |
| ; CHECK-NEXT: # kill: def $dl killed $dl killed $edx |
| ; CHECK-NEXT: # kill: def $cl killed $cl killed $ecx |
| ; CHECK-NEXT: retq |
| %select = select i1 %cond, <3 x i1> <i1 true, i1 true, i1 true>, <3 x i1> zeroinitializer |
| ret <3 x i1> %select |
| } |