1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

[WebAssembly] Implement int64-to-int32 conversion.

llvm-svn: 247649
This commit is contained in:
Dan Gohman 2015-09-15 00:55:19 +00:00
parent 983dd51faf
commit 3ccfb9131a
2 changed files with 19 additions and 0 deletions

View File

@ -42,3 +42,6 @@
* float64.cvt_unsigned[int64]: convert an unsigned 64-bit integer to a 64-bit float
* float64.reinterpret[int64]: reinterpret the bits of a 64-bit integer as a 64-bit float
*/
def WRAP_I64_I32 : I<(outs Int32:$dst), (ins Int64:$src),
[(set Int32:$dst, (trunc Int64:$src))]>;

View File

@ -0,0 +1,16 @@
; RUN: llc < %s -asm-verbose=false | FileCheck %s
; Test that basic conversion operations assemble as expected.
target datalayout = "e-p:32:32-i64:64-n32:64-S128"
target triple = "wasm32-unknown-unknown"
; CHECK-LABEL: $wrap_i64_i32
; CHECK-NEXT: (param i64) (result i32)
; CHECK-NEXT: (setlocal @0 (argument 0))
; CHECK-NEXT: (setlocal @1 (wrap_i64 @0))
; CHECK-NEXT: (return @1)
define i32 @wrap_i64_i32(i64 %x) {
%a = trunc i64 %x to i32
ret i32 %a
}