[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / X86 / and-load-fold.ll
blob367ef2a344a61bbd8dd2ebceb468440390ea23b9
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=x86_64-- -mcpu=generic < %s | FileCheck %s
4 ; Verify that the DAGCombiner doesn't wrongly remove the 'and' from the dag.
6 define i8 @foo(<4 x i8>* %V) {
7 ; CHECK-LABEL: foo:
8 ; CHECK:       # %bb.0:
9 ; CHECK-NEXT:    movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
10 ; CHECK-NEXT:    pextrw $1, %xmm0, %eax
11 ; CHECK-NEXT:    andb $95, %al
12 ; CHECK-NEXT:    # kill: def $al killed $al killed $eax
13 ; CHECK-NEXT:    retq
14   %Vp = bitcast <4 x i8>* %V to <3 x i8>*
15   %V3i8 = load <3 x i8>, <3 x i8>* %Vp, align 4
16   %t0 = and <3 x i8> %V3i8, <i8 undef, i8 undef, i8 95>
17   %t1 = extractelement <3 x i8> %t0, i64 2
18   ret i8 %t1