[llvm] 80fb782 - [WebAssembly][NFC] Update reftype and table tests to use opaque pointers

Alex Bradbury via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 20 02:58:08 PDT 2022


Author: Alex Bradbury
Date: 2022-06-20T10:57:41+01:00
New Revision: 80fb7823367c1d105fcbc8f21b69205a0d68c859

URL: https://github.com/llvm/llvm-project/commit/80fb7823367c1d105fcbc8f21b69205a0d68c859
DIFF: https://github.com/llvm/llvm-project/commit/80fb7823367c1d105fcbc8f21b69205a0d68c859.diff

LOG: [WebAssembly][NFC] Update reftype and table tests to use opaque pointers

Differential Revision: https://reviews.llvm.org/D126535

Added: 
    

Modified: 
    llvm/test/CodeGen/WebAssembly/externref-globalget.ll
    llvm/test/CodeGen/WebAssembly/externref-globalset.ll
    llvm/test/CodeGen/WebAssembly/externref-inttoptr.ll
    llvm/test/CodeGen/WebAssembly/externref-ptrtoint.ll
    llvm/test/CodeGen/WebAssembly/externref-tableget.ll
    llvm/test/CodeGen/WebAssembly/externref-tableset.ll
    llvm/test/CodeGen/WebAssembly/externref-unsized-load.ll
    llvm/test/CodeGen/WebAssembly/externref-unsized-store.ll
    llvm/test/CodeGen/WebAssembly/funcref-call.ll
    llvm/test/CodeGen/WebAssembly/funcref-globalget.ll
    llvm/test/CodeGen/WebAssembly/funcref-globalset.ll
    llvm/test/CodeGen/WebAssembly/funcref-table_call.ll
    llvm/test/CodeGen/WebAssembly/funcref-tableget.ll
    llvm/test/CodeGen/WebAssembly/funcref-tableset.ll
    llvm/test/CodeGen/WebAssembly/ref-null.ll
    llvm/test/CodeGen/WebAssembly/table-copy.ll
    llvm/test/CodeGen/WebAssembly/table-fill.ll
    llvm/test/CodeGen/WebAssembly/table-grow.ll
    llvm/test/CodeGen/WebAssembly/table-size.ll
    llvm/test/CodeGen/WebAssembly/table-types.ll

Removed: 
    llvm/test/CodeGen/WebAssembly/externref-undef.ll


################################################################################
diff  --git a/llvm/test/CodeGen/WebAssembly/externref-globalget.ll b/llvm/test/CodeGen/WebAssembly/externref-globalget.ll
index b8303704227c..cdf98c42439f 100644
--- a/llvm/test/CodeGen/WebAssembly/externref-globalget.ll
+++ b/llvm/test/CodeGen/WebAssembly/externref-globalget.ll
@@ -1,13 +1,12 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
 
 @externref_global = local_unnamed_addr addrspace(1) global %externref undef
 
 define %externref @return_externref_global() {
   ;; this generates a global.get of @externref_global
-  %ref = load %externref, %externref addrspace(1)* @externref_global
+  %ref = load %externref, ptr addrspace(1) @externref_global
   ret %externref %ref
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/externref-globalset.ll b/llvm/test/CodeGen/WebAssembly/externref-globalset.ll
index 749c7daaf4ab..5bfd673e89fa 100644
--- a/llvm/test/CodeGen/WebAssembly/externref-globalset.ll
+++ b/llvm/test/CodeGen/WebAssembly/externref-globalset.ll
@@ -1,13 +1,12 @@
 ; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
 
 @externref_global = local_unnamed_addr addrspace(1) global %externref undef
 
 define void @set_externref_global(%externref %g) {
   ;; this generates a global.set of @externref.global
-  store %externref %g, %externref addrspace(1)* @externref_global
+  store %externref %g, ptr addrspace(1) @externref_global
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/externref-inttoptr.ll b/llvm/test/CodeGen/WebAssembly/externref-inttoptr.ll
index 252dbfe12040..64f955b6ed0f 100644
--- a/llvm/test/CodeGen/WebAssembly/externref-inttoptr.ll
+++ b/llvm/test/CodeGen/WebAssembly/externref-inttoptr.ll
@@ -1,7 +1,6 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types 2>&1 | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)*
+%externref = type ptr addrspace(10)
 
 define %externref @int_to_externref(i32 %i) {
   %ref = inttoptr i32 %i to %externref

diff  --git a/llvm/test/CodeGen/WebAssembly/externref-ptrtoint.ll b/llvm/test/CodeGen/WebAssembly/externref-ptrtoint.ll
index 648bfc510a54..22558796f062 100644
--- a/llvm/test/CodeGen/WebAssembly/externref-ptrtoint.ll
+++ b/llvm/test/CodeGen/WebAssembly/externref-ptrtoint.ll
@@ -1,7 +1,6 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types 2>&1 | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)*
+%externref = type ptr addrspace(10)
 
 define i32 @externref_to_int(%externref %ref) {
   %i = ptrtoint %externref %ref to i32

diff  --git a/llvm/test/CodeGen/WebAssembly/externref-tableget.ll b/llvm/test/CodeGen/WebAssembly/externref-tableget.ll
index 655cbdf9a473..674932868e8b 100644
--- a/llvm/test/CodeGen/WebAssembly/externref-tableget.ll
+++ b/llvm/test/CodeGen/WebAssembly/externref-tableget.ll
@@ -1,7 +1,6 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
 
 @externref_table = local_unnamed_addr addrspace(1) global [0 x %externref] undef
 
@@ -11,8 +10,8 @@ define %externref @get_externref_from_table(i32 %i) {
 ; CHECK-NEXT: local.get 0
 ; CHECK-NEXT: table.get externref_table
 ; CHECK-NEXT: end_function
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %i
-  %ref = load %externref, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace(1) @externref_table, i32 0, i32 %i
+  %ref = load %externref, ptr addrspace(1) %p
   ret %externref %ref
 }
 
@@ -22,8 +21,8 @@ define %externref @get_externref_from_table_const() {
 ; CHECK-NEXT:  i32.const      0
 ; CHECK-NEXT:  table.get      externref_table
 ; CHECK-NEXT:  end_function
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 0
-  %ref = load %externref, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 0
+  %ref = load %externref, ptr addrspace(1) %p
   ret %externref %ref
 }
 
@@ -36,8 +35,8 @@ define %externref @get_externref_from_table_with_offset(i32 %i) {
 ; CHECK-NEXT:  table.get       externref_table
 ; CHECK-NEXT:  end_function
   %off = add nsw i32 %i, 2
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %off
-  %ref = load %externref, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 %off
+  %ref = load %externref, ptr addrspace(1) %p
   ret %externref %ref
 }
 
@@ -51,8 +50,8 @@ define %externref @get_externref_from_table_with_var_offset(i32 %i, i32 %j) {
 ; CHECK-NEXT:  table.get       externref_table
 ; CHECK-NEXT:  end_function
   %off = add nsw i32 %i, %j
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %off
-  %ref = load %externref, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 %off
+  %ref = load %externref, ptr addrspace(1) %p
   ret %externref %ref
 }
 
@@ -68,8 +67,8 @@ define %externref @get_externref_from_table_with_var_offset2(i32 %i) {
 ; CHECK-NEXT:  end_function
   %j = call i32 @get_offset()
   %off = add nsw i32 %i, %j
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %off
-  %ref = load %externref, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 %off
+  %ref = load %externref, ptr addrspace(1) %p
   ret %externref %ref
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/externref-tableset.ll b/llvm/test/CodeGen/WebAssembly/externref-tableset.ll
index e22f5d054e41..fe773e0a33a2 100644
--- a/llvm/test/CodeGen/WebAssembly/externref-tableset.ll
+++ b/llvm/test/CodeGen/WebAssembly/externref-tableset.ll
@@ -1,7 +1,6 @@
 ; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
 
 @externref_table = local_unnamed_addr addrspace(1) global [0 x %externref] undef
 
@@ -14,8 +13,8 @@ define void @set_externref_table(%externref %g, i32 %i) {
 ; CHECK-NEXT: end_function
 
 ;; this generates a table.set of @externref_table
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %i
-  store %externref %g, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 %i
+  store %externref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -26,8 +25,8 @@ define void @set_externref_table_const(%externref %g) {
 ; CHECK-NEXT:  local.get      0
 ; CHECK-NEXT:  table.set      externref_table
 ; CHECK-NEXT:  end_function
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 0
-  store %externref %g, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 0
+  store %externref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -41,8 +40,8 @@ define void @set_externref_table_with_offset(%externref %g, i32 %i) {
 ; CHECK-NEXT:  table.set       externref_table
 ; CHECK-NEXT:  end_function
   %off = add nsw i32 %i, 2
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %off
-  store %externref %g, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 %off
+  store %externref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -56,8 +55,8 @@ define void @set_externref_table_with_var_offset(%externref %g, i32 %i, i32 %j)
 ; CHECK-NEXT:  table.set       externref_table
 ; CHECK-NEXT:  end_function
   %off = add nsw i32 %i, %j
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %off
-  store %externref %g, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 %off
+  store %externref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -74,8 +73,8 @@ define void @set_externref_table_with_var_offset2(%externref %g, i32 %i) {
 ; CHECK-NEXT:  end_function
   %j = call i32 @set_offset()
   %off = add nsw i32 %i, %j
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %off
-  store %externref %g, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 %off
+  store %externref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -89,8 +88,8 @@ define void @set_externref_table_with_id_from_call(%externref %g) {
 ; CHECK-NEXT:  table.set       externref_table
 ; CHECK-NEXT:  end_function
   %id = call i32 @get_table_slot()
-  %p = getelementptr [0 x %externref], [0 x %externref] addrspace (1)* @externref_table, i32 0, i32 %id
-  store %externref %g, %externref addrspace(1)* %p
+  %p = getelementptr [0 x %externref], ptr addrspace (1) @externref_table, i32 0, i32 %id
+  store %externref %g, ptr addrspace(1) %p
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/externref-undef.ll b/llvm/test/CodeGen/WebAssembly/externref-undef.ll
deleted file mode 100644
index e5453420e825..000000000000
--- a/llvm/test/CodeGen/WebAssembly/externref-undef.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
-
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
-
- at externref_global = local_unnamed_addr addrspace(1) global %externref undef
-
-define %extern @return_extern_undef() {
-  ; Returning a ref.null or an uninitialized externref would make
-  ; more sense if the return type would be %externref. However, in
-  ; this case this is an %extern value, which really is an opaque
-  ; type and should never really happen.
-  ret %extern undef
-}
-
-; CHECK-LABEL: return_extern_undef:
-; CHECK-NEXT: functype       return_extern_undef () -> ()
-; CHECK-NEXT: end_function
-
-; CHECK: .globl externref_global
-

diff  --git a/llvm/test/CodeGen/WebAssembly/externref-unsized-load.ll b/llvm/test/CodeGen/WebAssembly/externref-unsized-load.ll
index 69aa53a9732c..945045d902ef 100644
--- a/llvm/test/CodeGen/WebAssembly/externref-unsized-load.ll
+++ b/llvm/test/CodeGen/WebAssembly/externref-unsized-load.ll
@@ -1,7 +1,6 @@
 ; RUN: not llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
 
-%extern = type opaque
-%externref = type %extern addrspace(10)*
+%externref = type ptr addrspace(10)
 
 define void @load_extern(%externref %ref) {
   %e = load %extern, %externref %ref

diff  --git a/llvm/test/CodeGen/WebAssembly/externref-unsized-store.ll b/llvm/test/CodeGen/WebAssembly/externref-unsized-store.ll
index 9608873a78b9..ca01f69a08ad 100644
--- a/llvm/test/CodeGen/WebAssembly/externref-unsized-store.ll
+++ b/llvm/test/CodeGen/WebAssembly/externref-unsized-store.ll
@@ -1,7 +1,6 @@
 ; RUN: not llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
 
-%extern = type opaque
-%externref = type %extern addrspace(10)*
+%externref = type ptr addrspace(10)
 
 define void @store_extern(%externref %ref) {
   store %extern undef, %externref %ref

diff  --git a/llvm/test/CodeGen/WebAssembly/funcref-call.ll b/llvm/test/CodeGen/WebAssembly/funcref-call.ll
index d568c817a126..4193c1e04caa 100644
--- a/llvm/test/CodeGen/WebAssembly/funcref-call.ll
+++ b/llvm/test/CodeGen/WebAssembly/funcref-call.ll
@@ -1,7 +1,6 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
 
-%funcptr = type void () addrspace(20)*
-%funcref = type i8 addrspace(20)* ;; addrspace 20 is nonintegral
+%funcref = type ptr addrspace(20) ;; addrspace 20 is nonintegral
 
 ; CHECK: .tabletype __funcref_call_table, funcref, 1
 
@@ -16,23 +15,6 @@ define void @call_funcref(%funcref %ref) {
 ; CHECK-NEXT: i32.const 0
 ; CHECK-NEXT: ref.null_func
 ; CHECK-NEXT: table.set __funcref_call_table
-; CHECK-NEXT: end_function
-  %f = bitcast %funcref %ref to %funcptr
-  call addrspace(20) void %f() 
-  ret void
-}
-
-define void @call_funcptr(%funcptr %ref) {
-; CHECK-LABEL: call_funcptr:
-; CHECK-NEXT: .functype       call_funcptr (funcref) -> ()
-; CHECK-NEXT: i32.const	0
-; CHECK-NEXT: local.get	0
-; CHECK-NEXT: table.set	__funcref_call_table
-; CHECK-NEXT: i32.const	0
-; CHECK-NEXT: call_indirect	__funcref_call_table, () -> ()
-; CHECK-NEXT: i32.const	0
-; CHECK-NEXT: ref.null_func
-; CHECK-NEXT: table.set	__funcref_call_table
 ; CHECK-NEXT: end_function
   call addrspace(20) void %ref()
   ret void

diff  --git a/llvm/test/CodeGen/WebAssembly/funcref-globalget.ll b/llvm/test/CodeGen/WebAssembly/funcref-globalget.ll
index 37a72aba50b2..9aa7fdabfdea 100644
--- a/llvm/test/CodeGen/WebAssembly/funcref-globalget.ll
+++ b/llvm/test/CodeGen/WebAssembly/funcref-globalget.ll
@@ -1,12 +1,12 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
 
-%funcref = type i8 addrspace(20)* ;; addrspace 20 is nonintegral
+%funcref = type ptr addrspace(20) ;; addrspace 20 is nonintegral
 
 @funcref_global = local_unnamed_addr addrspace(1) global %funcref undef
 
 define %funcref @return_funcref_global() {
   ;; this generates a global.get of @funcref_global
-  %ref = load %funcref, %funcref addrspace(1)* @funcref_global
+  %ref = load %funcref, ptr addrspace(1) @funcref_global
   ret %funcref %ref
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/funcref-globalset.ll b/llvm/test/CodeGen/WebAssembly/funcref-globalset.ll
index 3c23abe49cbc..ca2feb661799 100644
--- a/llvm/test/CodeGen/WebAssembly/funcref-globalset.ll
+++ b/llvm/test/CodeGen/WebAssembly/funcref-globalset.ll
@@ -1,12 +1,12 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
 
-%funcref = type i8 addrspace(20)* ;; addrspace 20 is nonintegral
+%funcref = type ptr addrspace(20) ;; addrspace 20 is nonintegral
 
 @funcref_global = local_unnamed_addr addrspace(1) global %funcref undef
 
 define void @set_funcref_global(%funcref %g) {
   ;; this generates a global.set of @funcref_global
-  store %funcref %g, %funcref addrspace(1)* @funcref_global
+  store %funcref %g, ptr addrspace(1) @funcref_global
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/funcref-table_call.ll b/llvm/test/CodeGen/WebAssembly/funcref-table_call.ll
index 37076db6da42..066afa7580de 100644
--- a/llvm/test/CodeGen/WebAssembly/funcref-table_call.ll
+++ b/llvm/test/CodeGen/WebAssembly/funcref-table_call.ll
@@ -1,7 +1,6 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
 
-%funcptr = type void () addrspace(20)*
-%funcref = type i8 addrspace(20)* ;; addrspace 20 is nonintegral
+%funcref = type ptr addrspace(20) ;; addrspace 20 is nonintegral
 
 @funcref_table = local_unnamed_addr addrspace(1) global [0 x %funcref] undef
 
@@ -20,10 +19,9 @@ define void @call_funcref_from_table(i32 %i) {
 ; CHECK-NEXT: ref.null_func
 ; CHECK-NEXT: table.set       __funcref_call_table
 ; CHECK-NEXT: end_function
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %i
-  %ref = load %funcref, %funcref addrspace(1)* %p
-  %fn = bitcast %funcref %ref to %funcptr
-  call addrspace(20) void %fn()
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %i
+  %ref = load %funcref, ptr addrspace(1) %p
+  call addrspace(20) void %ref()
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/funcref-tableget.ll b/llvm/test/CodeGen/WebAssembly/funcref-tableget.ll
index a34ba0f7c3b0..0e29af230437 100644
--- a/llvm/test/CodeGen/WebAssembly/funcref-tableget.ll
+++ b/llvm/test/CodeGen/WebAssembly/funcref-tableget.ll
@@ -1,6 +1,6 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
 
-%funcref = type i8 addrspace(20)* ;; addrspace 20 is nonintegral
+%funcref = type ptr addrspace(20) ;; addrspace 20 is nonintegral
 
 @funcref_table = local_unnamed_addr addrspace(1) global [0 x %funcref] undef
 
@@ -10,8 +10,8 @@ define %funcref @get_funcref_from_table(i32 %i) {
 ; CHECK-NEXT: local.get 0
 ; CHECK-NEXT: table.get funcref_table
 ; CHECK-NEXT: end_function
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %i
-  %ref = load %funcref, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %i
+  %ref = load %funcref, ptr addrspace(1) %p
   ret %funcref %ref
 }
 
@@ -21,8 +21,8 @@ define %funcref @get_funcref_from_table_const() {
 ; CHECK-NEXT:  i32.const      0
 ; CHECK-NEXT:  table.get      funcref_table
 ; CHECK-NEXT:  end_function
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 0
-  %ref = load %funcref, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 0
+  %ref = load %funcref, ptr addrspace(1) %p
   ret %funcref %ref
 }
 
@@ -35,8 +35,8 @@ define %funcref @get_funcref_from_table_with_offset(i32 %i) {
 ; CHECK-NEXT:  table.get       funcref_table
 ; CHECK-NEXT:  end_function
   %off = add nsw i32 %i, 2
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %off
-  %ref = load %funcref, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %off
+  %ref = load %funcref, ptr addrspace(1) %p
   ret %funcref %ref
 }
 
@@ -50,8 +50,8 @@ define %funcref @get_funcref_from_table_with_var_offset(i32 %i, i32 %j) {
 ; CHECK-NEXT:  table.get       funcref_table
 ; CHECK-NEXT:  end_function
   %off = add nsw i32 %i, %j
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %off
-  %ref = load %funcref, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %off
+  %ref = load %funcref, ptr addrspace(1) %p
   ret %funcref %ref
 }
 
@@ -67,8 +67,8 @@ define %funcref @get_funcref_from_table_with_var_offset2(i32 %i) {
 ; CHECK-NEXT:  end_function
   %j = call i32 @get_offset()
   %off = add nsw i32 %i, %j
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %off
-  %ref = load %funcref, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %off
+  %ref = load %funcref, ptr addrspace(1) %p
   ret %funcref %ref
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/funcref-tableset.ll b/llvm/test/CodeGen/WebAssembly/funcref-tableset.ll
index 257594dc7df0..ed79414ed1ff 100644
--- a/llvm/test/CodeGen/WebAssembly/funcref-tableset.ll
+++ b/llvm/test/CodeGen/WebAssembly/funcref-tableset.ll
@@ -1,6 +1,6 @@
 ; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s | FileCheck %s
 
-%funcref = type i8 addrspace(20)* ;; addrspace 20 is nonintegral
+%funcref = type ptr addrspace(20) ;; addrspace 20 is nonintegral
 
 @funcref_table = local_unnamed_addr addrspace(1) global [0 x %funcref] undef
 
@@ -13,8 +13,8 @@ define void @set_funcref_table(%funcref %g, i32 %i) {
 ; CHECK-NEXT: end_function
 
 ;; this generates a table.set of @funcref_table
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %i
-  store %funcref %g, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %i
+  store %funcref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -25,8 +25,8 @@ define void @set_funcref_table_const(%funcref %g) {
 ; CHECK-NEXT:  local.get      0
 ; CHECK-NEXT:  table.set      funcref_table
 ; CHECK-NEXT:  end_function
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 0
-  store %funcref %g, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 0
+  store %funcref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -40,8 +40,8 @@ define void @set_funcref_table_with_offset(%funcref %g, i32 %i) {
 ; CHECK-NEXT:  table.set       funcref_table
 ; CHECK-NEXT:  end_function
   %off = add nsw i32 %i, 2
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %off
-  store %funcref %g, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %off
+  store %funcref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -55,8 +55,8 @@ define void @set_funcref_table_with_var_offset(%funcref %g, i32 %i, i32 %j) {
 ; CHECK-NEXT:  table.set       funcref_table
 ; CHECK-NEXT:  end_function
   %off = add nsw i32 %i, %j
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %off
-  store %funcref %g, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %off
+  store %funcref %g, ptr addrspace(1) %p
   ret void
 }
 
@@ -73,8 +73,8 @@ define void @set_funcref_table_with_var_offset2(%funcref %g, i32 %i) {
 ; CHECK-NEXT:  end_function
   %j = call i32 @set_offset()
   %off = add nsw i32 %i, %j
-  %p = getelementptr [0 x %funcref], [0 x %funcref] addrspace (1)* @funcref_table, i32 0, i32 %off
-  store %funcref %g, %funcref addrspace(1)* %p
+  %p = getelementptr [0 x %funcref], ptr addrspace (1) @funcref_table, i32 0, i32 %off
+  store %funcref %g, ptr addrspace(1) %p
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/WebAssembly/ref-null.ll b/llvm/test/CodeGen/WebAssembly/ref-null.ll
index 710bd4f1f7d9..af6ddfd8e081 100644
--- a/llvm/test/CodeGen/WebAssembly/ref-null.ll
+++ b/llvm/test/CodeGen/WebAssembly/ref-null.ll
@@ -1,9 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc --mtriple=wasm32-unknown-unknown -mattr=+reference-types < %s | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
-%funcref = type i8 addrspace(20)*      ;; addrspace 20 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
+%funcref = type ptr addrspace(20)   ;; addrspace 20 is nonintegral
 
 declare %externref @llvm.wasm.ref.null.extern() nounwind
 declare %funcref @llvm.wasm.ref.null.func() nounwind

diff  --git a/llvm/test/CodeGen/WebAssembly/table-copy.ll b/llvm/test/CodeGen/WebAssembly/table-copy.ll
index 7239a3f5febf..2c3735dc9678 100644
--- a/llvm/test/CodeGen/WebAssembly/table-copy.ll
+++ b/llvm/test/CodeGen/WebAssembly/table-copy.ll
@@ -1,12 +1,11 @@
 ; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
 
 @externref_table1 = local_unnamed_addr addrspace(1) global [0 x %externref] undef
 @externref_table2 = local_unnamed_addr addrspace(1) global [0 x %externref] undef
 
-declare void @llvm.wasm.table.copy(i8 addrspace(1)*, i8 addrspace(1)*, i32, i32, i32) nounwind readonly
+declare void @llvm.wasm.table.copy(ptr addrspace(1), ptr addrspace(1), i32, i32, i32) nounwind readonly
 
 define void @table_copy(i32 %dst, i32 %src, i32 %len) {
 ; CHECK-LABEL: table_copy:
@@ -16,11 +15,9 @@ define void @table_copy(i32 %dst, i32 %src, i32 %len) {
 ; CHECK-NEXT:  local.get    2
 ; CHECK-NEXT:  table.copy	externref_table1, externref_table2
 ; CHECK-NEXT:  end_function
-  %tableptr1 = getelementptr [0 x %externref], [0 x %externref] addrspace(1)* @externref_table1, i32 0, i32 0
-  %tb1 = bitcast %externref addrspace(1)* %tableptr1 to i8 addrspace(1)*
-  %tableptr2 = getelementptr [0 x %externref], [0 x %externref] addrspace(1)* @externref_table2, i32 0, i32 0
-  %tb2 = bitcast %externref addrspace(1)* %tableptr2 to i8 addrspace(1)*
-  call void @llvm.wasm.table.copy(i8 addrspace(1)* %tb1, i8 addrspace(1)* %tb2, i32 %dst, i32 %src, i32 %len)
+  %tableptr1 = getelementptr [0 x %externref], ptr addrspace(1) @externref_table1, i32 0, i32 0
+  %tableptr2 = getelementptr [0 x %externref], ptr addrspace(1) @externref_table2, i32 0, i32 0
+  call void @llvm.wasm.table.copy(ptr addrspace(1) %tableptr1, ptr addrspace(1) %tableptr2, i32 %dst, i32 %src, i32 %len)
   ret void
 }
 
@@ -37,8 +34,7 @@ define void @self_table_copy(i32 %src, i32 %off, i32 %len) {
 ; CHECK-NEXT:  table.copy	externref_table1, externref_table1
 ; CHECK-NEXT:  end_function
   %dst = add nsw i32 %src, %off
-  %tableptr1 = getelementptr [0 x %externref], [0 x %externref] addrspace(1)* @externref_table1, i32 0, i32 0
-  %tb1 = bitcast %externref addrspace(1)* %tableptr1 to i8 addrspace(1)*
-  call void @llvm.wasm.table.copy(i8 addrspace(1)* %tb1, i8 addrspace(1)* %tb1, i32 %dst, i32 %src, i32 %len)
+  %tableptr1 = getelementptr [0 x %externref], ptr addrspace(1) @externref_table1, i32 0, i32 0
+  call void @llvm.wasm.table.copy(ptr addrspace(1) %tableptr1, ptr addrspace(1) %tableptr1, i32 %dst, i32 %src, i32 %len)
   ret void
 }

diff  --git a/llvm/test/CodeGen/WebAssembly/table-fill.ll b/llvm/test/CodeGen/WebAssembly/table-fill.ll
index d547f2e8ac36..2cecebfbae7a 100644
--- a/llvm/test/CodeGen/WebAssembly/table-fill.ll
+++ b/llvm/test/CodeGen/WebAssembly/table-fill.ll
@@ -1,11 +1,10 @@
 ; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
 
 @externref_table = local_unnamed_addr addrspace(1) global [0 x %externref] undef
 
-declare void @llvm.wasm.table.fill.externref(i8 addrspace(1)*, i32, %externref, i32) nounwind readonly
+declare void @llvm.wasm.table.fill.externref(ptr addrspace(1), i32, %externref, i32) nounwind readonly
 
 define void @table_fill(i32 %start, i32 %len, %externref %val) {
 ; CHECK-LABEL: table_fill:
@@ -15,8 +14,7 @@ define void @table_fill(i32 %start, i32 %len, %externref %val) {
 ; CHECK-NEXT:  local.get    1
 ; CHECK-NEXT:  table.fill	externref_table
 ; CHECK-NEXT:  end_function
-  %tableptr = getelementptr [0 x %externref], [0 x %externref] addrspace(1)* @externref_table, i32 0, i32 0
-  %tb = bitcast %externref addrspace(1)* %tableptr to i8 addrspace(1)*
-  call void @llvm.wasm.table.fill.externref(i8 addrspace(1)* %tb, i32 %start, %externref %val, i32 %len)
+  %tableptr = getelementptr [0 x %externref], ptr addrspace(1) @externref_table, i32 0, i32 0
+  call void @llvm.wasm.table.fill.externref(ptr addrspace(1) %tableptr, i32 %start, %externref %val, i32 %len)
   ret void
 }

diff  --git a/llvm/test/CodeGen/WebAssembly/table-grow.ll b/llvm/test/CodeGen/WebAssembly/table-grow.ll
index de6ab83771ac..fb9c5a14d3c8 100644
--- a/llvm/test/CodeGen/WebAssembly/table-grow.ll
+++ b/llvm/test/CodeGen/WebAssembly/table-grow.ll
@@ -1,11 +1,10 @@
 ; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
 
 @externref_table = local_unnamed_addr addrspace(1) global [0 x %externref] undef
 
-declare i32 @llvm.wasm.table.grow.externref(i8 addrspace(1)*, %externref, i32) nounwind readonly
+declare i32 @llvm.wasm.table.grow.externref(ptr addrspace(1), %externref, i32) nounwind readonly
 declare %externref @llvm.wasm.ref.null.extern() nounwind readonly
 
 define i32 @table_grow(i32 %sz) {
@@ -16,8 +15,7 @@ define i32 @table_grow(i32 %sz) {
 ; CHECK-NEXT:  table.grow	externref_table
 ; CHECK-NEXT:  end_function
   %null = call %externref @llvm.wasm.ref.null.extern()
-  %tableptr = getelementptr [0 x %externref], [0 x %externref] addrspace(1)* @externref_table, i32 0, i32 0
-  %tb = bitcast %externref addrspace(1)* %tableptr to i8 addrspace(1)*
-  %newsz = call i32 @llvm.wasm.table.grow.externref(i8 addrspace(1)* %tb, %externref %null, i32 %sz)
+  %tableptr = getelementptr [0 x %externref], ptr addrspace(1) @externref_table, i32 0, i32 0
+  %newsz = call i32 @llvm.wasm.table.grow.externref(ptr addrspace(1) %tableptr, %externref %null, i32 %sz)
   ret i32 %newsz
 }

diff  --git a/llvm/test/CodeGen/WebAssembly/table-size.ll b/llvm/test/CodeGen/WebAssembly/table-size.ll
index 267d22a96b09..f9ea6a5f16f0 100644
--- a/llvm/test/CodeGen/WebAssembly/table-size.ll
+++ b/llvm/test/CodeGen/WebAssembly/table-size.ll
@@ -1,19 +1,17 @@
 ; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
 
 @externref_table = local_unnamed_addr addrspace(1) global [0 x %externref] undef
 
-declare i32 @llvm.wasm.table.size(i8 addrspace(1)*) nounwind readonly
+declare i32 @llvm.wasm.table.size(ptr addrspace(1)) nounwind readonly
 
 define i32 @table_size() {
 ; CHECK-LABEL: table_size:
 ; CHECK-NEXT:  .functype       table_size () -> (i32)
 ; CHECK-NEXT:  table.size      externref_table
 ; CHECK-NEXT:  end_function
-  %tableptr = getelementptr [0 x %externref], [0 x %externref] addrspace(1)* @externref_table, i32 0, i32 0
-  %tb = bitcast %externref addrspace(1)* %tableptr to i8 addrspace(1)*
-  %sz = call i32 @llvm.wasm.table.size(i8 addrspace(1)* %tb)
+  %tableptr = getelementptr [0 x %externref], ptr addrspace(1) @externref_table, i32 0, i32 0
+  %sz = call i32 @llvm.wasm.table.size(ptr addrspace(1) %tableptr)
   ret i32 %sz
 }

diff  --git a/llvm/test/CodeGen/WebAssembly/table-types.ll b/llvm/test/CodeGen/WebAssembly/table-types.ll
index f4a66629df43..cb5e54e2af23 100644
--- a/llvm/test/CodeGen/WebAssembly/table-types.ll
+++ b/llvm/test/CodeGen/WebAssembly/table-types.ll
@@ -1,10 +1,7 @@
 ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | FileCheck %s
 
-%extern = type opaque
-%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
-
-%func = type void ()
-%funcref = type %func addrspace(20)* ;; addrspace 20 is nonintegral
+%externref = type ptr addrspace(10) ;; addrspace 10 is nonintegral
+%funcref = type ptr addrspace(20)   ;; addrspace 20 is nonintegral
 
 ; CHECK: .tabletype eref_table, externref
 ; CHECK-NEXT: .globl eref_table


        


More information about the llvm-commits mailing list