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