Home | History | Annotate | Download | only in X86
      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 
      5 define 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 
     17 define 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