Add MULX code generation support

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164673 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Michael Liao
2012-09-26 08:22:37 +00:00
parent c7c42f71aa
commit 0832a72a66
4 changed files with 127 additions and 27 deletions

View File

@@ -0,0 +1,22 @@
; RUN: llc -mcpu=core-avx2 -march=x86 < %s | FileCheck %s
define i64 @f1(i32 %a, i32 %b) {
%x = zext i32 %a to i64
%y = zext i32 %b to i64
%r = mul i64 %x, %y
; CHECK: f1
; CHECK: mulxl
; CHECK: ret
ret i64 %r
}
define i64 @f2(i32 %a, i32* %p) {
%b = load i32* %p
%x = zext i32 %a to i64
%y = zext i32 %b to i64
%r = mul i64 %x, %y
; CHECK: f1
; CHECK: mulxl ({{.+}}), %{{.+}}, %{{.+}}
; CHECK: ret
ret i64 %r
}

View File

@@ -0,0 +1,22 @@
; RUN: llc -mcpu=core-avx2 -march=x86-64 < %s | FileCheck %s
define i128 @f1(i64 %a, i64 %b) {
%x = zext i64 %a to i128
%y = zext i64 %b to i128
%r = mul i128 %x, %y
; CHECK: f1
; CHECK: mulxq
; CHECK: ret
ret i128 %r
}
define i128 @f2(i64 %a, i64* %p) {
%b = load i64* %p
%x = zext i64 %a to i128
%y = zext i64 %b to i128
%r = mul i128 %x, %y
; CHECK: f1
; CHECK: mulxq ({{.+}}), %{{.+}}, %{{.+}}
; CHECK: ret
ret i128 %r
}