Dan Gohman | c285307 | 2015-09-03 22:51:53 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple wasm32-unknown-unknown -O3 -emit-llvm -o - %s \ |
| 2 | // RUN: | FileCheck %s -check-prefix=WEBASSEMBLY32 |
| 3 | // RUN: %clang_cc1 -triple wasm64-unknown-unknown -O3 -emit-llvm -o - %s \ |
| 4 | // RUN: | FileCheck %s -check-prefix=WEBASSEMBLY64 |
| 5 | |
Dan Gohman | d4c5fb5 | 2015-10-02 19:38:47 +0000 | [diff] [blame] | 6 | __SIZE_TYPE__ f1(void) { |
Derek Schuff | dbd24b4 | 2016-05-02 17:26:19 +0000 | [diff] [blame] | 7 | return __builtin_wasm_current_memory(); |
| 8 | // WEBASSEMBLY32: call {{i.*}} @llvm.wasm.current.memory.i32() |
| 9 | // WEBASSEMBLY64: call {{i.*}} @llvm.wasm.current.memory.i64() |
Dan Gohman | d4c5fb5 | 2015-10-02 19:38:47 +0000 | [diff] [blame] | 10 | } |
Dan Gohman | 266b38a | 2015-10-02 20:20:01 +0000 | [diff] [blame] | 11 | |
Dan Gohman | 0c59541 | 2017-01-18 01:03:35 +0000 | [diff] [blame] | 12 | __SIZE_TYPE__ f2(__SIZE_TYPE__ delta) { |
| 13 | return __builtin_wasm_grow_memory(delta); |
| 14 | // WEBASSEMBLY32: call i32 @llvm.wasm.grow.memory.i32(i32 %{{.*}}) |
| 15 | // WEBASSEMBLY64: call i64 @llvm.wasm.grow.memory.i64(i64 %{{.*}}) |
Dan Gohman | 266b38a | 2015-10-02 20:20:01 +0000 | [diff] [blame] | 16 | } |
Heejin Ahn | b92440e | 2017-06-30 00:44:01 +0000 | [diff] [blame] | 17 | |
| 18 | void f3(unsigned int tag, void *obj) { |
| 19 | return __builtin_wasm_throw(tag, obj); |
| 20 | // WEBASSEMBLY32: call void @llvm.wasm.throw(i32 %{{.*}}, i8* %{{.*}}) |
| 21 | // WEBASSEMBLY64: call void @llvm.wasm.throw(i32 %{{.*}}, i8* %{{.*}}) |
| 22 | } |
| 23 | |
| 24 | void f4() { |
| 25 | return __builtin_wasm_rethrow(); |
| 26 | // WEBASSEMBLY32: call void @llvm.wasm.rethrow() |
| 27 | // WEBASSEMBLY64: call void @llvm.wasm.rethrow() |
| 28 | } |