diff options
Diffstat (limited to 'test/CodeGen/X86/and-load-fold.ll')
-rw-r--r-- | test/CodeGen/X86/and-load-fold.ll | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/CodeGen/X86/and-load-fold.ll b/test/CodeGen/X86/and-load-fold.ll new file mode 100644 index 0000000..29ab324 --- /dev/null +++ b/test/CodeGen/X86/and-load-fold.ll @@ -0,0 +1,15 @@ +; RUN: llc -mtriple=x86_64-unknown-unknown -mcpu=generic < %s | FileCheck %s + +; Verify that the DAGCombiner doesn't wrongly remove the 'and' from the dag. + +define i8 @foo(<4 x i8>* %V) { +; CHECK-LABEL: foo: +; CHECK: pand +; CHECK: ret +entry: + %Vp = bitcast <4 x i8>* %V to <3 x i8>* + %V3i8 = load <3 x i8>, <3 x i8>* %Vp, align 4 + %0 = and <3 x i8> %V3i8, <i8 undef, i8 undef, i8 95> + %1 = extractelement <3 x i8> %0, i64 2 + ret i8 %1 +} |