[llvm] da4d6ca - [X86][NFC] Use compact enum to store ternlog comments (#206089)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Jun 27 22:13:28 PDT 2026
Author: Alexis Engelke
Date: 2026-06-28T07:13:23+02:00
New Revision: da4d6ca094763e1eacb3d9b1f0e108c8edcaf029
URL: https://github.com/llvm/llvm-project/commit/da4d6ca094763e1eacb3d9b1f0e108c8edcaf029
DIFF: https://github.com/llvm/llvm-project/commit/da4d6ca094763e1eacb3d9b1f0e108c8edcaf029.diff
LOG: [X86][NFC] Use compact enum to store ternlog comments (#206089)
Instead of storing a StringRef (StringLiteral is essentially a
StringRef) with 16 bytes and one dynamic relocation for each of the 256
entries (4kiB total) and, use the new compact enum tables to store each
entry with 4 bytes and without relocations.
Added:
Modified:
llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
index 76731437931a7..d7f21fe17bfe1 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
@@ -16,6 +16,7 @@
#include "X86BaseInfo.h"
#include "X86MCTargetDesc.h"
#include "X86ShuffleDecode.h"
+#include "llvm/ADT/Enum.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/Support/raw_ostream.h"
@@ -653,264 +654,265 @@ static bool printFMAComments(const MCInst *MI, raw_ostream &OS,
// inputs to the binary function. This table was taken from
// https://gist.github.com/dougallj/81a80cd381988466c4e1c4889ecac95b#file-2-x86-base-txt
// with slight massaging.
-constexpr StringLiteral TernlogFunctions[] = {
- "0",
- "~(a | b | c)",
- "c & ~(a | b)",
- "~(a | b)",
- "b & ~(a | c)",
- "~(a | c)",
- "~a & (b ^ c)",
- "~(a | (b & c))",
- "b & c & ~a",
- "~(a | (b ^ c))",
- "c & ~a",
- "~a & (c | ~b)",
- "b & ~a",
- "~a & (b | ~c)",
- "~a & (b | c)",
- "~a",
- "a & ~(b | c)",
- "~(b | c)",
- "~b & (a ^ c)",
- "~((a & c) | b)",
- "~c & (a ^ b)",
- "~((a & b) | c)",
- "a ^ ((a & b) | (b ^ c))",
- "(a & (b ^ c)) ^ ~(b & c)",
- "(a ^ b) & (a ^ c)",
- "~((a & b) | (b ^ c))",
- "a ^ ((a & b) | c)",
- "(a & c) ^ (c | ~b)",
- "a ^ ((a & c) | b)",
- "(a & b) ^ (b | ~c)",
- "a ^ (b | c)",
- "~(a & (b | c))",
- "a & c & ~b",
- "~(b | (a ^ c))",
- "c & ~b",
- "~b & (c | ~a)",
- "(a ^ b) & (b ^ c)",
- "~((a & b) | (a ^ c))",
- "b ^ ((a & b) | c)",
- "(b & c) ^ (c | ~a)",
- "c & (a ^ b)",
- "(a | b) ^ ((a & b) | ~c)",
- "c & ~(a & b)",
- "(c & (a ^ b)) | ~(a | b)",
- "(b | c) & (a ^ b)",
- "a ^ (b | ~c)",
- "(a & b) ^ (b | c)",
- "(c & ~b) | ~a",
- "a & ~b",
- "~b & (a | ~c)",
- "~b & (a | c)",
- "~b",
- "b ^ (a | (b & c))",
- "(a & b) ^ (a | ~c)",
- "b ^ (a | c)",
- "~(b & (a | c))",
- "(a | c) & (a ^ b)",
- "b ^ (a | ~c)",
- "(a & b) ^ (a | c)",
- "(c & ~a) | ~b",
- "a ^ b",
- "~(a | c) | (a ^ b)",
- "(c & ~a) | (a ^ b)",
- "~(a & b)",
- "a & b & ~c",
- "~(c | (a ^ b))",
- "(a ^ c) & (b ^ c)",
- "~((a & c) | (a ^ b))",
- "b & ~c",
- "~c & (b | ~a)",
- "c ^ ((a & c) | b)",
- "(b & c) ^ (b | ~a)",
- "b & (a ^ c)",
- "(a | c) ^ ((a & c) | ~b)",
- "(b | c) & (a ^ c)",
- "a ^ (c | ~b)",
- "b & ~(a & c)",
- "(b & (a ^ c)) | ~(a | c)",
- "(a & c) ^ (b | c)",
- "(b & ~c) | ~a",
- "a & ~c",
- "~c & (a | ~b)",
- "c ^ (a | (b & c))",
- "(a & c) ^ (a | ~b)",
- "~c & (a | b)",
- "~c",
- "c ^ (a | b)",
- "~(c & (a | b))",
- "(a | b) & (a ^ c)",
- "c ^ (a | ~b)",
- "a ^ c",
- "~(a | b) | (a ^ c)",
- "(a & c) ^ (a | b)",
- "(b & ~a) | ~c",
- "(b & ~a) | (a ^ c)",
- "~(a & c)",
- "a & (b ^ c)",
- "~(b ^ c) ^ (a | (b & c))",
- "(a | c) & (b ^ c)",
- "b ^ (c | ~a)",
- "(a | b) & (b ^ c)",
- "c ^ (b | ~a)",
- "b ^ c",
- "~(a | b) | (b ^ c)",
- "(a | b) & (c ^ (a & b))",
- "b ^ c ^ ~a",
- "c ^ (a & b)",
- "~(a | b) | (c ^ (a & b))",
- "b ^ (a & c)",
- "~(a | c) | (b ^ (a & c))",
- "(b & ~a) | (b ^ c)",
- "~a | (b ^ c)",
- "a & ~(b & c)",
- "(a & (b ^ c)) | ~(b | c)",
- "(b & c) ^ (a | c)",
- "(a & ~c) | ~b",
- "(b & c) ^ (a | b)",
- "(a & ~b) | ~c",
- "(a & ~b) | (b ^ c)",
- "~(b & c)",
- "a ^ (b & c)",
- "~(b | c) | (a ^ (b & c))",
- "(a & ~b) | (a ^ c)",
- "~b | (a ^ c)",
- "(a & ~c) | (a ^ b)",
- "~c | (a ^ b)",
- "(a ^ b) | (a ^ c)",
- "~(a & b & c)",
- "a & b & c",
- "~((a ^ b) | (a ^ c))",
- "c & ~(a ^ b)",
- "~(a ^ b) & (c | ~a)",
- "b & ~(a ^ c)",
- "~(a ^ c) & (b | ~a)",
- "(b | c) & (a ^ b ^ c)",
- "(b & c) ^ ~a",
- "b & c",
- "~(b ^ c) & (b | ~a)",
- "c & (b | ~a)",
- "~((b & c) ^ (a | b))",
- "b & (c | ~a)",
- "~((b & c) ^ (a | c))",
- "a ^ ((a ^ b) | (a ^ c))",
- "(b & c) | ~a",
- "a & ~(b ^ c)",
- "~(b ^ c) & (a | ~b)",
- "(a | c) & (a ^ b ^ c)",
- "(a & c) ^ ~b",
- "(a | b) & (a ^ b ^ c)",
- "(a & b) ^ ~c",
- "a ^ b ^ c",
- "~(a | b) | (a ^ b ^ c)",
- "~(b ^ c) & (a | b)",
- "~(b ^ c)",
- "c ^ (a & ~b)",
- "~((a | b) & (b ^ c))",
- "b ^ (a & ~c)",
- "~((a | c) & (b ^ c))",
- "(b & c) | (a ^ (b | c))",
- "~(a & (b ^ c))",
- "a & c",
- "~(a ^ c) & (a | ~b)",
- "c & (a | ~b)",
- "~((a & c) ^ (a | b))",
- "~(a ^ c) & (a | b)",
- "~(a ^ c)",
- "c ^ (b & ~a)",
- "~((a | b) & (a ^ c))",
- "c & (a | b)",
- "~c ^ (a | b)",
- "c",
- "c | ~(a | b)",
- "b ^ (a & (b ^ c))",
- "(b & c) | ~(a ^ c)",
- "(b & ~a) | c",
- "c | ~a",
- "a & (c | ~b)",
- "~((a & c) ^ (b | c))",
- "a ^ ((a ^ c) & (b ^ c))",
- "(a & c) | ~b",
- "a ^ (b & ~c)",
- "~((b | c) & (a ^ c))",
- "(a & c) | (a ^ b ^ c)",
- "~(b & (a ^ c))",
- "a ^ (b & (a ^ c))",
- "(a & c) | ~(b ^ c)",
- "(a & ~b) | c",
- "c | ~b",
- "(a & c) | (a ^ b)",
- "~((a ^ c) & (b ^ c))",
- "c | (a ^ b)",
- "c | ~(a & b)",
- "a & b",
- "~(a ^ b) & (a | ~c)",
- "~(a ^ b) & (a | c)",
- "~(a ^ b)",
- "b & (a | ~c)",
- "~((a & b) ^ (a | c))",
- "b ^ (c & ~a)",
- "~((a | c) & (a ^ b))",
- "b & (a | c)",
- "~b ^ (a | c)",
- "c ^ (a & (b ^ c))",
- "(b & c) | ~(a ^ b)",
- "b",
- "b | ~(a | c)",
- "(c & ~a) | b",
- "b | ~a",
- "a & (b | ~c)",
- "~((a & b) ^ (b | c))",
- "a ^ (c & ~b)",
- "~((b | c) & (a ^ b))",
- "a ^ ((a ^ b) & (b ^ c))",
- "(a & b) | ~c",
- "(a & b) | (a ^ b ^ c)",
- "~(c & (a ^ b))",
- "a ^ (c & (a ^ b))",
- "(a & b) | ~(b ^ c)",
- "(a & b) | (a ^ c)",
- "~((a ^ b) & (b ^ c))",
- "(a & ~c) | b",
- "b | ~c",
- "b | (a ^ c)",
- "b | ~(a & c)",
- "a & (b | c)",
- "~a ^ (b | c)",
- "c ^ (b & (a ^ c))",
- "(a & c) | ~(a ^ b)",
- "b ^ (c & (a ^ b))",
- "(a & b) | ~(a ^ c)",
- "(a & b) | (b ^ c)",
- "~((a ^ b) & (a ^ c))",
- "(a | b) & ((a & b) | c)",
- "(a & b) | (b ^ c ^ ~a)",
- "(a & b) | c",
- "c | ~(a ^ b)",
- "(a & c) | b",
- "b | ~(a ^ c)",
- "b | c",
- "~a | b | c",
- "a",
- "a | ~(b | c)",
- "a | (c & ~b)",
- "a | ~b",
- "a | (b & ~c)",
- "a | ~c",
- "a | (b ^ c)",
- "a | ~(b & c)",
- "a | (b & c)",
- "a | ~(b ^ c)",
- "a | c",
- "~b | a | c",
- "a | b",
- "~c | a | b",
- "a | b | c",
- "-1",
+constexpr EnumStringDef<uint8_t> TernlogFunctionDefs[] = {
+ {{"0"}, 0},
+ {{"~(a | b | c)"}, 1},
+ {{"c & ~(a | b)"}, 2},
+ {{"~(a | b)"}, 3},
+ {{"b & ~(a | c)"}, 4},
+ {{"~(a | c)"}, 5},
+ {{"~a & (b ^ c)"}, 6},
+ {{"~(a | (b & c))"}, 7},
+ {{"b & c & ~a"}, 8},
+ {{"~(a | (b ^ c))"}, 9},
+ {{"c & ~a"}, 10},
+ {{"~a & (c | ~b)"}, 11},
+ {{"b & ~a"}, 12},
+ {{"~a & (b | ~c)"}, 13},
+ {{"~a & (b | c)"}, 14},
+ {{"~a"}, 15},
+ {{"a & ~(b | c)"}, 16},
+ {{"~(b | c)"}, 17},
+ {{"~b & (a ^ c)"}, 18},
+ {{"~((a & c) | b)"}, 19},
+ {{"~c & (a ^ b)"}, 20},
+ {{"~((a & b) | c)"}, 21},
+ {{"a ^ ((a & b) | (b ^ c))"}, 22},
+ {{"(a & (b ^ c)) ^ ~(b & c)"}, 23},
+ {{"(a ^ b) & (a ^ c)"}, 24},
+ {{"~((a & b) | (b ^ c))"}, 25},
+ {{"a ^ ((a & b) | c)"}, 26},
+ {{"(a & c) ^ (c | ~b)"}, 27},
+ {{"a ^ ((a & c) | b)"}, 28},
+ {{"(a & b) ^ (b | ~c)"}, 29},
+ {{"a ^ (b | c)"}, 30},
+ {{"~(a & (b | c))"}, 31},
+ {{"a & c & ~b"}, 32},
+ {{"~(b | (a ^ c))"}, 33},
+ {{"c & ~b"}, 34},
+ {{"~b & (c | ~a)"}, 35},
+ {{"(a ^ b) & (b ^ c)"}, 36},
+ {{"~((a & b) | (a ^ c))"}, 37},
+ {{"b ^ ((a & b) | c)"}, 38},
+ {{"(b & c) ^ (c | ~a)"}, 39},
+ {{"c & (a ^ b)"}, 40},
+ {{"(a | b) ^ ((a & b) | ~c)"}, 41},
+ {{"c & ~(a & b)"}, 42},
+ {{"(c & (a ^ b)) | ~(a | b)"}, 43},
+ {{"(b | c) & (a ^ b)"}, 44},
+ {{"a ^ (b | ~c)"}, 45},
+ {{"(a & b) ^ (b | c)"}, 46},
+ {{"(c & ~b) | ~a"}, 47},
+ {{"a & ~b"}, 48},
+ {{"~b & (a | ~c)"}, 49},
+ {{"~b & (a | c)"}, 50},
+ {{"~b"}, 51},
+ {{"b ^ (a | (b & c))"}, 52},
+ {{"(a & b) ^ (a | ~c)"}, 53},
+ {{"b ^ (a | c)"}, 54},
+ {{"~(b & (a | c))"}, 55},
+ {{"(a | c) & (a ^ b)"}, 56},
+ {{"b ^ (a | ~c)"}, 57},
+ {{"(a & b) ^ (a | c)"}, 58},
+ {{"(c & ~a) | ~b"}, 59},
+ {{"a ^ b"}, 60},
+ {{"~(a | c) | (a ^ b)"}, 61},
+ {{"(c & ~a) | (a ^ b)"}, 62},
+ {{"~(a & b)"}, 63},
+ {{"a & b & ~c"}, 64},
+ {{"~(c | (a ^ b))"}, 65},
+ {{"(a ^ c) & (b ^ c)"}, 66},
+ {{"~((a & c) | (a ^ b))"}, 67},
+ {{"b & ~c"}, 68},
+ {{"~c & (b | ~a)"}, 69},
+ {{"c ^ ((a & c) | b)"}, 70},
+ {{"(b & c) ^ (b | ~a)"}, 71},
+ {{"b & (a ^ c)"}, 72},
+ {{"(a | c) ^ ((a & c) | ~b)"}, 73},
+ {{"(b | c) & (a ^ c)"}, 74},
+ {{"a ^ (c | ~b)"}, 75},
+ {{"b & ~(a & c)"}, 76},
+ {{"(b & (a ^ c)) | ~(a | c)"}, 77},
+ {{"(a & c) ^ (b | c)"}, 78},
+ {{"(b & ~c) | ~a"}, 79},
+ {{"a & ~c"}, 80},
+ {{"~c & (a | ~b)"}, 81},
+ {{"c ^ (a | (b & c))"}, 82},
+ {{"(a & c) ^ (a | ~b)"}, 83},
+ {{"~c & (a | b)"}, 84},
+ {{"~c"}, 85},
+ {{"c ^ (a | b)"}, 86},
+ {{"~(c & (a | b))"}, 87},
+ {{"(a | b) & (a ^ c)"}, 88},
+ {{"c ^ (a | ~b)"}, 89},
+ {{"a ^ c"}, 90},
+ {{"~(a | b) | (a ^ c)"}, 91},
+ {{"(a & c) ^ (a | b)"}, 92},
+ {{"(b & ~a) | ~c"}, 93},
+ {{"(b & ~a) | (a ^ c)"}, 94},
+ {{"~(a & c)"}, 95},
+ {{"a & (b ^ c)"}, 96},
+ {{"~(b ^ c) ^ (a | (b & c))"}, 97},
+ {{"(a | c) & (b ^ c)"}, 98},
+ {{"b ^ (c | ~a)"}, 99},
+ {{"(a | b) & (b ^ c)"}, 100},
+ {{"c ^ (b | ~a)"}, 101},
+ {{"b ^ c"}, 102},
+ {{"~(a | b) | (b ^ c)"}, 103},
+ {{"(a | b) & (c ^ (a & b))"}, 104},
+ {{"b ^ c ^ ~a"}, 105},
+ {{"c ^ (a & b)"}, 106},
+ {{"~(a | b) | (c ^ (a & b))"}, 107},
+ {{"b ^ (a & c)"}, 108},
+ {{"~(a | c) | (b ^ (a & c))"}, 109},
+ {{"(b & ~a) | (b ^ c)"}, 110},
+ {{"~a | (b ^ c)"}, 111},
+ {{"a & ~(b & c)"}, 112},
+ {{"(a & (b ^ c)) | ~(b | c)"}, 113},
+ {{"(b & c) ^ (a | c)"}, 114},
+ {{"(a & ~c) | ~b"}, 115},
+ {{"(b & c) ^ (a | b)"}, 116},
+ {{"(a & ~b) | ~c"}, 117},
+ {{"(a & ~b) | (b ^ c)"}, 118},
+ {{"~(b & c)"}, 119},
+ {{"a ^ (b & c)"}, 120},
+ {{"~(b | c) | (a ^ (b & c))"}, 121},
+ {{"(a & ~b) | (a ^ c)"}, 122},
+ {{"~b | (a ^ c)"}, 123},
+ {{"(a & ~c) | (a ^ b)"}, 124},
+ {{"~c | (a ^ b)"}, 125},
+ {{"(a ^ b) | (a ^ c)"}, 126},
+ {{"~(a & b & c)"}, 127},
+ {{"a & b & c"}, 128},
+ {{"~((a ^ b) | (a ^ c))"}, 129},
+ {{"c & ~(a ^ b)"}, 130},
+ {{"~(a ^ b) & (c | ~a)"}, 131},
+ {{"b & ~(a ^ c)"}, 132},
+ {{"~(a ^ c) & (b | ~a)"}, 133},
+ {{"(b | c) & (a ^ b ^ c)"}, 134},
+ {{"(b & c) ^ ~a"}, 135},
+ {{"b & c"}, 136},
+ {{"~(b ^ c) & (b | ~a)"}, 137},
+ {{"c & (b | ~a)"}, 138},
+ {{"~((b & c) ^ (a | b))"}, 139},
+ {{"b & (c | ~a)"}, 140},
+ {{"~((b & c) ^ (a | c))"}, 141},
+ {{"a ^ ((a ^ b) | (a ^ c))"}, 142},
+ {{"(b & c) | ~a"}, 143},
+ {{"a & ~(b ^ c)"}, 144},
+ {{"~(b ^ c) & (a | ~b)"}, 145},
+ {{"(a | c) & (a ^ b ^ c)"}, 146},
+ {{"(a & c) ^ ~b"}, 147},
+ {{"(a | b) & (a ^ b ^ c)"}, 148},
+ {{"(a & b) ^ ~c"}, 149},
+ {{"a ^ b ^ c"}, 150},
+ {{"~(a | b) | (a ^ b ^ c)"}, 151},
+ {{"~(b ^ c) & (a | b)"}, 152},
+ {{"~(b ^ c)"}, 153},
+ {{"c ^ (a & ~b)"}, 154},
+ {{"~((a | b) & (b ^ c))"}, 155},
+ {{"b ^ (a & ~c)"}, 156},
+ {{"~((a | c) & (b ^ c))"}, 157},
+ {{"(b & c) | (a ^ (b | c))"}, 158},
+ {{"~(a & (b ^ c))"}, 159},
+ {{"a & c"}, 160},
+ {{"~(a ^ c) & (a | ~b)"}, 161},
+ {{"c & (a | ~b)"}, 162},
+ {{"~((a & c) ^ (a | b))"}, 163},
+ {{"~(a ^ c) & (a | b)"}, 164},
+ {{"~(a ^ c)"}, 165},
+ {{"c ^ (b & ~a)"}, 166},
+ {{"~((a | b) & (a ^ c))"}, 167},
+ {{"c & (a | b)"}, 168},
+ {{"~c ^ (a | b)"}, 169},
+ {{"c"}, 170},
+ {{"c | ~(a | b)"}, 171},
+ {{"b ^ (a & (b ^ c))"}, 172},
+ {{"(b & c) | ~(a ^ c)"}, 173},
+ {{"(b & ~a) | c"}, 174},
+ {{"c | ~a"}, 175},
+ {{"a & (c | ~b)"}, 176},
+ {{"~((a & c) ^ (b | c))"}, 177},
+ {{"a ^ ((a ^ c) & (b ^ c))"}, 178},
+ {{"(a & c) | ~b"}, 179},
+ {{"a ^ (b & ~c)"}, 180},
+ {{"~((b | c) & (a ^ c))"}, 181},
+ {{"(a & c) | (a ^ b ^ c)"}, 182},
+ {{"~(b & (a ^ c))"}, 183},
+ {{"a ^ (b & (a ^ c))"}, 184},
+ {{"(a & c) | ~(b ^ c)"}, 185},
+ {{"(a & ~b) | c"}, 186},
+ {{"c | ~b"}, 187},
+ {{"(a & c) | (a ^ b)"}, 188},
+ {{"~((a ^ c) & (b ^ c))"}, 189},
+ {{"c | (a ^ b)"}, 190},
+ {{"c | ~(a & b)"}, 191},
+ {{"a & b"}, 192},
+ {{"~(a ^ b) & (a | ~c)"}, 193},
+ {{"~(a ^ b) & (a | c)"}, 194},
+ {{"~(a ^ b)"}, 195},
+ {{"b & (a | ~c)"}, 196},
+ {{"~((a & b) ^ (a | c))"}, 197},
+ {{"b ^ (c & ~a)"}, 198},
+ {{"~((a | c) & (a ^ b))"}, 199},
+ {{"b & (a | c)"}, 200},
+ {{"~b ^ (a | c)"}, 201},
+ {{"c ^ (a & (b ^ c))"}, 202},
+ {{"(b & c) | ~(a ^ b)"}, 203},
+ {{"b"}, 204},
+ {{"b | ~(a | c)"}, 205},
+ {{"(c & ~a) | b"}, 206},
+ {{"b | ~a"}, 207},
+ {{"a & (b | ~c)"}, 208},
+ {{"~((a & b) ^ (b | c))"}, 209},
+ {{"a ^ (c & ~b)"}, 210},
+ {{"~((b | c) & (a ^ b))"}, 211},
+ {{"a ^ ((a ^ b) & (b ^ c))"}, 212},
+ {{"(a & b) | ~c"}, 213},
+ {{"(a & b) | (a ^ b ^ c)"}, 214},
+ {{"~(c & (a ^ b))"}, 215},
+ {{"a ^ (c & (a ^ b))"}, 216},
+ {{"(a & b) | ~(b ^ c)"}, 217},
+ {{"(a & b) | (a ^ c)"}, 218},
+ {{"~((a ^ b) & (b ^ c))"}, 219},
+ {{"(a & ~c) | b"}, 220},
+ {{"b | ~c"}, 221},
+ {{"b | (a ^ c)"}, 222},
+ {{"b | ~(a & c)"}, 223},
+ {{"a & (b | c)"}, 224},
+ {{"~a ^ (b | c)"}, 225},
+ {{"c ^ (b & (a ^ c))"}, 226},
+ {{"(a & c) | ~(a ^ b)"}, 227},
+ {{"b ^ (c & (a ^ b))"}, 228},
+ {{"(a & b) | ~(a ^ c)"}, 229},
+ {{"(a & b) | (b ^ c)"}, 230},
+ {{"~((a ^ b) & (a ^ c))"}, 231},
+ {{"(a | b) & ((a & b) | c)"}, 232},
+ {{"(a & b) | (b ^ c ^ ~a)"}, 233},
+ {{"(a & b) | c"}, 234},
+ {{"c | ~(a ^ b)"}, 235},
+ {{"(a & c) | b"}, 236},
+ {{"b | ~(a ^ c)"}, 237},
+ {{"b | c"}, 238},
+ {{"~a | b | c"}, 239},
+ {{"a"}, 240},
+ {{"a | ~(b | c)"}, 241},
+ {{"a | (c & ~b)"}, 242},
+ {{"a | ~b"}, 243},
+ {{"a | (b & ~c)"}, 244},
+ {{"a | ~c"}, 245},
+ {{"a | (b ^ c)"}, 246},
+ {{"a | ~(b & c)"}, 247},
+ {{"a | (b & c)"}, 248},
+ {{"a | ~(b ^ c)"}, 249},
+ {{"a | c"}, 250},
+ {{"~b | a | c"}, 251},
+ {{"a | b"}, 252},
+ {{"~c | a | b"}, 253},
+ {{"a | b | c"}, 254},
+ {{"-1"}, 255},
};
+constexpr auto TernlogFunctions = BUILD_ENUM_STRINGS(TernlogFunctionDefs);
static bool printPTERNLOGComments(const MCInst *MI, raw_ostream &OS,
const MCInstrInfo &MCII) {
@@ -975,7 +977,7 @@ static bool printPTERNLOGComments(const MCInst *MI, raw_ostream &OS,
OS << " = ";
static_assert(std::size(TernlogFunctions) == 256);
- std::string_view BooleanFunction = TernlogFunctions[TruthTable];
+ std::string_view BooleanFunction = TernlogFunctions[TruthTable].name();
while (!BooleanFunction.empty()) {
// Print the expression up to the next symbol.
More information about the llvm-commits
mailing list