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:
parent
983dd51faf
commit
3ccfb9131a
@ -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))]>;
|
||||
|
16
test/CodeGen/WebAssembly/conv.ll
Normal file
16
test/CodeGen/WebAssembly/conv.ll
Normal 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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user