[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / X86 / mulx32.ll
blobfaf299f3a2dfaa85d2c3d3feac90f8ef8041918f
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i686-unknown -mattr=+bmi2 | FileCheck %s
3 ; RUN: llc < %s -mtriple=i686-unknown -mcpu=core-avx2 | FileCheck %s
5 define i64 @f1(i32 %a, i32 %b) {
6 ; CHECK-LABEL: f1:
7 ; CHECK:       # %bb.0:
8 ; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
9 ; CHECK-NEXT:    mull {{[0-9]+}}(%esp)
10 ; CHECK-NEXT:    retl
11   %x = zext i32 %a to i64
12   %y = zext i32 %b to i64
13   %r = mul i64 %x, %y
14   ret i64 %r
17 define i64 @f2(i32 %a, i32* %p) {
18 ; CHECK-LABEL: f2:
19 ; CHECK:       # %bb.0:
20 ; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
21 ; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %ecx
22 ; CHECK-NEXT:    mull (%ecx)
23 ; CHECK-NEXT:    retl
24   %b = load i32, i32* %p
25   %x = zext i32 %a to i64
26   %y = zext i32 %b to i64
27   %r = mul i64 %x, %y
28   ret i64 %r