• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
4
5define i64 @f1(i32 %a, i32 %b) {
6; CHECK-LABEL: f1:
7; CHECK:       # %bb.0:
8; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %edx
9; CHECK-NEXT:    mulxl {{[0-9]+}}(%esp), %eax, %edx
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
15}
16
17define i64 @f2(i32 %a, i32* %p) {
18; CHECK-LABEL: f2:
19; CHECK:       # %bb.0:
20; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %edx
21; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
22; CHECK-NEXT:    mulxl (%eax), %eax, %edx
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
29}
30