[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / X86 / pmulld.ll
blob3fe3ebc9763c7d77e8513c3f368bad5429e77a51
1 ; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse4.1 -asm-verbose=0 | FileCheck %s
2 ; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse4.1 -asm-verbose=0 | FileCheck %s -check-prefix=WIN64
4 define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
5 ; CHECK-LABEL: test1:
6 ; CHECK-NEXT: pmulld
8 ; WIN64-LABEL: test1:
9 ; WIN64-NEXT: movdqa  (%rcx), %xmm0
10 ; WIN64-NEXT: pmulld  (%rdx), %xmm0
11   %C = mul <4 x i32> %A, %B
12   ret <4 x i32> %C
15 define <4 x i32> @test1a(<4 x i32> %A, <4 x i32> *%Bp) nounwind {
16 ; CHECK-LABEL: test1a:
17 ; CHECK-NEXT: pmulld
19 ; WIN64-LABEL: test1a:
20 ; WIN64-NEXT: movdqa  (%rcx), %xmm0
21 ; WIN64-NEXT: pmulld  (%rdx), %xmm0
23   %B = load <4 x i32>, <4 x i32>* %Bp
24   %C = mul <4 x i32> %A, %B
25   ret <4 x i32> %C