mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 16:17:17 +00:00
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:
22
test/CodeGen/X86/mulx32.ll
Normal file
22
test/CodeGen/X86/mulx32.ll
Normal 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
|
||||
}
|
22
test/CodeGen/X86/mulx64.ll
Normal file
22
test/CodeGen/X86/mulx64.ll
Normal 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
|
||||
}
|
Reference in New Issue
Block a user