about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2022-05-03 22:38:53 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2022-05-03 23:00:25 +0200
commit618ba484e9e66dece784753947e2ddec202d282a (patch)
treefd21cf227fcdbcd4201fb4949fb459eed36ee2dc
parentf402cfe561fa371483360c1559c9507667470304 (diff)
downloadrust-618ba484e9e66dece784753947e2ddec202d282a.tar.gz
rust-618ba484e9e66dece784753947e2ddec202d282a.zip
Handle a syntax corner case where a def does not end with a `;`
-rw-r--r--src/intrinsic/archs.rs10
-rw-r--r--tools/generate_intrinsics.py4
2 files changed, 9 insertions, 5 deletions
diff --git a/src/intrinsic/archs.rs b/src/intrinsic/archs.rs
index 427ca77e9d0..2782332cc57 100644
--- a/src/intrinsic/archs.rs
+++ b/src/intrinsic/archs.rs
@@ -110,18 +110,18 @@ match name {
     "llvm.amdgcn.s.dcache.inv.vol" => "__builtin_amdgcn_s_dcache_inv_vol",
     "llvm.amdgcn.s.dcache.wb" => "__builtin_amdgcn_s_dcache_wb",
     "llvm.amdgcn.s.dcache.wb.vol" => "__builtin_amdgcn_s_dcache_wb_vol",
+    "llvm.amdgcn.s.decperflevel" => "__builtin_amdgcn_s_decperflevel",
     "llvm.amdgcn.s.get.waveid.in.workgroup" => "__builtin_amdgcn_s_get_waveid_in_workgroup",
     "llvm.amdgcn.s.getpc" => "__builtin_amdgcn_s_getpc",
     "llvm.amdgcn.s.getreg" => "__builtin_amdgcn_s_getreg",
+    "llvm.amdgcn.s.incperflevel" => "__builtin_amdgcn_s_incperflevel",
     "llvm.amdgcn.s.memrealtime" => "__builtin_amdgcn_s_memrealtime",
     "llvm.amdgcn.s.memtime" => "__builtin_amdgcn_s_memtime",
     "llvm.amdgcn.s.sendmsg" => "__builtin_amdgcn_s_sendmsg",
     "llvm.amdgcn.s.sendmsghalt" => "__builtin_amdgcn_s_sendmsghalt",
     "llvm.amdgcn.s.setprio" => "__builtin_amdgcn_s_setprio",
     "llvm.amdgcn.s.setreg" => "__builtin_amdgcn_s_setreg",
-    "llvm.amdgcn.s.sleep" => "__builtin_amdgcn_s_decperflevel",
-    // [DUPLICATE]: "llvm.amdgcn.s.sleep" => "__builtin_amdgcn_s_incperflevel",
-    // [DUPLICATE]: "llvm.amdgcn.s.sleep" => "__builtin_amdgcn_s_sleep",
+    "llvm.amdgcn.s.sleep" => "__builtin_amdgcn_s_sleep",
     "llvm.amdgcn.s.waitcnt" => "__builtin_amdgcn_s_waitcnt",
     "llvm.amdgcn.sad.hi.u8" => "__builtin_amdgcn_sad_hi_u8",
     "llvm.amdgcn.sad.u16" => "__builtin_amdgcn_sad_u16",
@@ -2689,6 +2689,10 @@ match name {
     "llvm.ppc.vsx.xvresp" => "__builtin_vsx_xvresp",
     "llvm.ppc.vsx.xvrsqrtedp" => "__builtin_vsx_xvrsqrtedp",
     "llvm.ppc.vsx.xvrsqrtesp" => "__builtin_vsx_xvrsqrtesp",
+    "llvm.ppc.vsx.xxblendvb" => "__builtin_vsx_xxblendvb",
+    "llvm.ppc.vsx.xxblendvd" => "__builtin_vsx_xxblendvd",
+    "llvm.ppc.vsx.xxblendvh" => "__builtin_vsx_xxblendvh",
+    "llvm.ppc.vsx.xxblendvw" => "__builtin_vsx_xxblendvw",
     "llvm.ppc.vsx.xxpermx" => "__builtin_vsx_xxpermx",
     // ptx
     "llvm.ptx.bar.sync" => "__builtin_ptx_bar_sync",
diff --git a/tools/generate_intrinsics.py b/tools/generate_intrinsics.py
index 88b8b54b6ba..64f14143381 100644
--- a/tools/generate_intrinsics.py
+++ b/tools/generate_intrinsics.py
@@ -60,13 +60,13 @@ def extract_instrinsics(intrinsics, file):
             current_arch = None
         elif line.startswith("def "):
             content = ""
-            while not content.endswith(";") and pos < len(lines):
+            while not content.endswith(";") and not content.endswith("}") and pos < len(lines):
                 line = lines[pos].split(" // ")[0].strip()
                 content += line
                 pos += 1
             entries = re.findall('GCCBuiltin<"(\\w+)">', content)
             if len(entries) > 0:
-                intrinsic = content.split(":")[0].split(" ")[1].strip()
+                intrinsic = content.split("def ")[1].strip().split(":")[0].strip()
                 intrinsic = intrinsic.split("_")
                 if len(intrinsic) < 2 or intrinsic[0] != "int":
                     continue