brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · ae7c15e Raw
137 lines · plain
1# RUN: llc -mtriple=wasm32-unknown-unknown -exception-model=wasm -wasm-enable-sjlj -mattr=+exception-handling,+multivalue,+simd128 -run-pass wasm-cfg-sort -run-pass wasm-cfg-stackify %s -o - | FileCheck %s2 3--- |4  target triple = "wasm32-unknown-unknown"5 6  declare i32 @__gxx_wasm_personality_v0(...)7  declare void @foo()8  define void @function_property_test() {9    ret void10  }11  define void @wasm_eh_info_test() personality ptr @__gxx_wasm_personality_v0 {12    ret void13  }14 15  ;; Param / results tests16  define i32 @i32__i64(i64) {17    ret i32 018  }19  define void @void__i32_i64_f32_f64() {20    ret void21  }22  define void @void__v16i8_v8i16_v4i32_v2i64(<16 x i8>, <8 x i16>, <4 x i32>, <2 x i64>) {23    ret void24  }25  %pair = type { i32, i64 }26  define %pair @i32_i64__i32_i64(%pair %p) {27    ret %pair %p28  }29...30 31# CHECK-LABEL: name: function_property_test32# CHECK: machineFunctionInfo:33# CHECK:   isCFGStackified:   true34name: function_property_test35liveins:36  - { reg: '$arguments' }37body: |38  bb.0:39    RETURN implicit-def dead $arguments40...41 42---43# CHECK-LABEL: name: wasm_eh_info_test44# CHECK: machineFunctionInfo:45name: wasm_eh_info_test46liveins:47  - { reg: '$arguments' }48# CHECK:  wasmEHFuncInfo:49# bb.2 becomes bb.1 and bb.3 becomes bb.2 after CFGSort.50# CHECK-NEXT:    1:               251machineFunctionInfo:52  wasmEHFuncInfo:53    2:               354body:             |55  bb.0:56    successors: %bb.1, %bb.257    CALL @foo, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp6458 59  bb.1:60    RETURN implicit-def dead $arguments61 62  bb.2 (landing-pad):63    successors: %bb.1, %bb.364    %0:i32 = CATCH_LEGACY &__cpp_exception, implicit-def dead $arguments65    CALL @foo, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp6466    BR %bb.1, implicit-def $arguments67 68  bb.3 (landing-pad):69    CATCH_ALL_LEGACY implicit-def $arguments70    RETHROW 0, implicit-def $arguments71...72 73# Param / results tests74---75# CHECK-LABEL: name: i32__i6476# CHECK:    machineFunctionInfo:77# CHECK:      params:          [ i64 ]78# CHECK-NEXT: results:         [ i32 ]79name: i32__i6480liveins:81  - { reg: '$arguments' }82machineFunctionInfo:83  params:          [ i64 ]84  results:         [ i32 ]85body: |86  bb.0:87    %0:i32 = CONST_I32 3, implicit-def dead $arguments88    RETURN %0:i32, implicit-def dead $arguments89...90---91# CHECK-LABEL: name: void__i32_i64_f32_f6492# CHECK:    machineFunctionInfo:93# CHECK:      params:          [ i32, i64, f32, f64 ]94# CHECK-NEXT: results:         [  ]95name: void__i32_i64_f32_f6496liveins:97  - { reg: '$arguments' }98machineFunctionInfo:99  params:          [ i32, i64, f32, f64 ]100  results:         [  ]101body: |102  bb.0:103    RETURN implicit-def dead $arguments104...105---106# CHECK-LABEL: name: void__v16i8_v8i16_v4i32_v2i64107# CHECK:    machineFunctionInfo:108# CHECK:      params:          [ v16i8, v8i16, v4i32, v2i64 ]109# CHECK-NEXT: results:         [  ]110name: void__v16i8_v8i16_v4i32_v2i64111liveins:112  - { reg: '$arguments' }113machineFunctionInfo:114  params:          [ v16i8, v8i16, v4i32, v2i64 ]115  results:         [  ]116body: |117  bb.0:118    RETURN implicit-def dead $arguments119...120---121# CHECK-LABEL: name: i32_i64__i32_i64122# CHECK:    machineFunctionInfo:123# CHECK:      params:          [ i32, i64 ]124# CHECK-NEXT: results:         [ i32, i64 ]125name: i32_i64__i32_i64126liveins:127  - { reg: '$arguments' }128machineFunctionInfo:129  params:          [ i32, i64 ]130  results:         [ i32, i64 ]131body: |132  bb.0:133    %0:i32 = ARGUMENT_i32 0, implicit $arguments134    %1:i64 = ARGUMENT_i64 1, implicit $arguments135    RETURN %0, %1, implicit-def dead $arguments136...137