mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
81bb5f99ad
The data layout strings do not have any effect on llc tests and will become misleadingly out of date as we continue to update the canonical data layout, so remove them from the tests. Differential Revision: https://reviews.llvm.org/D105842
137 lines
3.6 KiB
YAML
137 lines
3.6 KiB
YAML
# RUN: llc -mtriple=wasm32-unknown-unknown -exception-model=wasm -mattr=+exception-handling,+multivalue,+simd128 -run-pass wasm-cfg-sort -run-pass wasm-cfg-stackify %s -o - | FileCheck %s
|
|
|
|
--- |
|
|
target triple = "wasm32-unknown-unknown"
|
|
|
|
declare i32 @__gxx_wasm_personality_v0(...)
|
|
declare void @foo()
|
|
define void @function_property_test() {
|
|
ret void
|
|
}
|
|
define void @wasm_eh_info_test() personality i8* bitcast (i32 (...)* @__gxx_wasm_personality_v0 to i8*) {
|
|
ret void
|
|
}
|
|
|
|
;; Param / results tests
|
|
define i32 @i32__i64(i64) {
|
|
ret i32 0
|
|
}
|
|
define void @void__i32_i64_f32_f64() {
|
|
ret void
|
|
}
|
|
define void @void__v16i8_v8i16_v4i32_v2i64(<16 x i8>, <8 x i16>, <4 x i32>, <2 x i64>) {
|
|
ret void
|
|
}
|
|
%pair = type { i32, i64 }
|
|
define %pair @i32_i64__i32_i64(%pair %p) {
|
|
ret %pair %p
|
|
}
|
|
...
|
|
|
|
# CHECK-LABEL: name: function_property_test
|
|
# CHECK: machineFunctionInfo:
|
|
# CHECK: isCFGStackified: true
|
|
name: function_property_test
|
|
liveins:
|
|
- { reg: '$arguments' }
|
|
body: |
|
|
bb.0:
|
|
RETURN implicit-def dead $arguments
|
|
...
|
|
|
|
---
|
|
# CHECK-LABEL: name: wasm_eh_info_test
|
|
# CHECK: machineFunctionInfo:
|
|
name: wasm_eh_info_test
|
|
liveins:
|
|
- { reg: '$arguments' }
|
|
# CHECK: wasmEHFuncInfo:
|
|
# bb.2 becomes bb.1 and bb.3 becomes bb.2 after CFGSort.
|
|
# CHECK-NEXT: 1: 2
|
|
machineFunctionInfo:
|
|
wasmEHFuncInfo:
|
|
2: 3
|
|
body: |
|
|
bb.0:
|
|
successors: %bb.1, %bb.2
|
|
CALL @foo, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64
|
|
|
|
bb.1:
|
|
RETURN implicit-def dead $arguments
|
|
|
|
bb.2 (landing-pad):
|
|
successors: %bb.1, %bb.3
|
|
%0:i32 = CATCH &__cpp_exception, implicit-def dead $arguments
|
|
CALL @foo, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64
|
|
BR %bb.1, implicit-def $arguments
|
|
|
|
bb.3 (landing-pad):
|
|
CATCH_ALL implicit-def $arguments
|
|
RETHROW 0, implicit-def $arguments
|
|
...
|
|
|
|
# Param / results tests
|
|
---
|
|
# CHECK-LABEL: name: i32__i64
|
|
# CHECK: machineFunctionInfo:
|
|
# CHECK: params: [ i64 ]
|
|
# CHECK-NEXT: results: [ i32 ]
|
|
name: i32__i64
|
|
liveins:
|
|
- { reg: '$arguments' }
|
|
machineFunctionInfo:
|
|
params: [ i64 ]
|
|
results: [ i32 ]
|
|
body: |
|
|
bb.0:
|
|
%0:i32 = CONST_I32 3, implicit-def dead $arguments
|
|
RETURN %0:i32, implicit-def dead $arguments
|
|
...
|
|
---
|
|
# CHECK-LABEL: name: void__i32_i64_f32_f64
|
|
# CHECK: machineFunctionInfo:
|
|
# CHECK: params: [ i32, i64, f32, f64 ]
|
|
# CHECK-NEXT: results: [ ]
|
|
name: void__i32_i64_f32_f64
|
|
liveins:
|
|
- { reg: '$arguments' }
|
|
machineFunctionInfo:
|
|
params: [ i32, i64, f32, f64 ]
|
|
results: [ ]
|
|
body: |
|
|
bb.0:
|
|
RETURN implicit-def dead $arguments
|
|
...
|
|
---
|
|
# CHECK-LABEL: name: void__v16i8_v8i16_v4i32_v2i64
|
|
# CHECK: machineFunctionInfo:
|
|
# CHECK: params: [ v16i8, v8i16, v4i32, v2i64 ]
|
|
# CHECK-NEXT: results: [ ]
|
|
name: void__v16i8_v8i16_v4i32_v2i64
|
|
liveins:
|
|
- { reg: '$arguments' }
|
|
machineFunctionInfo:
|
|
params: [ v16i8, v8i16, v4i32, v2i64 ]
|
|
results: [ ]
|
|
body: |
|
|
bb.0:
|
|
RETURN implicit-def dead $arguments
|
|
...
|
|
---
|
|
# CHECK-LABEL: name: i32_i64__i32_i64
|
|
# CHECK: machineFunctionInfo:
|
|
# CHECK: params: [ i32, i64 ]
|
|
# CHECK-NEXT: results: [ i32, i64 ]
|
|
name: i32_i64__i32_i64
|
|
liveins:
|
|
- { reg: '$arguments' }
|
|
machineFunctionInfo:
|
|
params: [ i32, i64 ]
|
|
results: [ i32, i64 ]
|
|
body: |
|
|
bb.0:
|
|
%0:i32 = ARGUMENT_i32 0, implicit $arguments
|
|
%1:i64 = ARGUMENT_i64 1, implicit $arguments
|
|
RETURN %0, %1, implicit-def dead $arguments
|
|
...
|