mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
[WebAssembly] Add V128 to WebAssemblyInstrInfo::copyPhysReg
Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53872 llvm-svn: 346384
This commit is contained in:
parent
5523fbfcb6
commit
b3aea855b4
@ -70,6 +70,8 @@ void WebAssemblyInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
|
||||
CopyOpcode = WebAssembly::COPY_F32;
|
||||
else if (RC == &WebAssembly::F64RegClass)
|
||||
CopyOpcode = WebAssembly::COPY_F64;
|
||||
else if (RC == &WebAssembly::V128RegClass)
|
||||
CopyOpcode = WebAssembly::COPY_V128;
|
||||
else
|
||||
llvm_unreachable("Unexpected register class");
|
||||
|
||||
|
80
test/CodeGen/WebAssembly/regcopy.mir
Normal file
80
test/CodeGen/WebAssembly/regcopy.mir
Normal file
@ -0,0 +1,80 @@
|
||||
# RUN: llc %s -o - -run-pass=postrapseudos | FileCheck %s
|
||||
--- |
|
||||
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
|
||||
target triple = "wasm32-unknown-unknown"
|
||||
|
||||
define void @copy_i32() {
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @copy_i64() {
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @copy_f32() {
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @copy_f64() {
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @copy_v128() {
|
||||
ret void
|
||||
}
|
||||
...
|
||||
---
|
||||
name: copy_i32
|
||||
# CHECK-LABEL: copy_i32
|
||||
body: |
|
||||
; CHECK-LABEL: bb.0:
|
||||
; CHECK-NEXT: %0:i32 = COPY_I32 %1:i32
|
||||
; CHECK-NEXT: RETURN_VOID
|
||||
bb.0:
|
||||
%0:i32 = COPY %1:i32
|
||||
RETURN_VOID implicit-def $arguments
|
||||
...
|
||||
---
|
||||
name: copy_i64
|
||||
# CHECK-LABEL: copy_i64
|
||||
body: |
|
||||
; CHECK-LABEL: bb.0:
|
||||
; CHECK-NEXT: %0:i64 = COPY_I64 %1:i64
|
||||
; CHECK-NEXT: RETURN_VOID
|
||||
bb.0:
|
||||
%0:i64 = COPY %1:i64
|
||||
RETURN_VOID implicit-def $arguments
|
||||
...
|
||||
---
|
||||
name: copy_f32
|
||||
# CHECK-LABEL: copy_f32
|
||||
body: |
|
||||
; CHECK-LABEL: bb.0:
|
||||
; CHECK-NEXT: %0:f32 = COPY_F32 %1:f32
|
||||
; CHECK-NEXT: RETURN_VOID
|
||||
bb.0:
|
||||
%0:f32 = COPY %1:f32
|
||||
RETURN_VOID implicit-def $arguments
|
||||
...
|
||||
---
|
||||
name: copy_f64
|
||||
# CHECK-LABEL: copy_f64
|
||||
body: |
|
||||
; CHECK-LABEL: bb.0:
|
||||
; CHECK-NEXT: %0:f64 = COPY_F64 %1:f64
|
||||
; CHECK-NEXT: RETURN_VOID
|
||||
bb.0:
|
||||
%0:f64 = COPY %1:f64
|
||||
RETURN_VOID implicit-def $arguments
|
||||
...
|
||||
---
|
||||
name: copy_v128
|
||||
# CHECK-LABEL: copy_v128
|
||||
body: |
|
||||
; CHECK-LABEL: bb.0:
|
||||
; CHECK-NEXT: %0:v128 = COPY_V128 %1:v128
|
||||
; CHECK-NEXT: RETURN_VOID
|
||||
bb.0:
|
||||
%0:v128 = COPY %1:v128
|
||||
RETURN_VOID implicit-def $arguments
|
||||
...
|
Loading…
Reference in New Issue
Block a user