# build_ne_bit: != unum -------------------------------------------------------
tcc -xif:err -One 2>&1 | grep 'match .* action'
prio {
    drop if raw[0] != 5;
}
EOF
match 0:7:1=0x0 action 1
match 0:6:1=0x1 action 1
match 0:5:1=0x0 action 1
match 0:4:1=0x1 action 1
match 0:3:1=0x1 action 1
match 0:2:1=0x1 action 1
match 0:1:1=0x1 action 1
match 0:0:1=0x1 action 1
# build_ne_bit: != small u128 -------------------------------------------------
tcc -xif:err -One 2>&1 | grep 'match .* action'
prio {
    drop if raw[0] != ::5;
}
EOF
match 0:7:1=0x0 action 1
match 0:6:1=0x1 action 1
match 0:5:1=0x0 action 1
match 0:4:1=0x1 action 1
match 0:3:1=0x1 action 1
match 0:2:1=0x1 action 1
match 0:1:1=0x1 action 1
match 0:0:1=0x1 action 1
# build_ne_bit: != large u128 -------------------------------------------------
tcc -xif:err -One 2>&1 | grep 'match .* action'
prio {
    drop if raw[0].ipv6 != 8000::1;
}
EOF
match 0:127:1=0x0 action 1
match 0:126:1=0x1 action 1
match 0:125:1=0x1 action 1
match 0:124:1=0x1 action 1
match 0:123:1=0x1 action 1
match 0:122:1=0x1 action 1
match 0:121:1=0x1 action 1
match 0:120:1=0x1 action 1
match 0:119:1=0x1 action 1
match 0:118:1=0x1 action 1
match 0:117:1=0x1 action 1
match 0:116:1=0x1 action 1
match 0:115:1=0x1 action 1
match 0:114:1=0x1 action 1
match 0:113:1=0x1 action 1
match 0:112:1=0x1 action 1
match 0:111:1=0x1 action 1
match 0:110:1=0x1 action 1
match 0:109:1=0x1 action 1
match 0:108:1=0x1 action 1
match 0:107:1=0x1 action 1
match 0:106:1=0x1 action 1
match 0:105:1=0x1 action 1
match 0:104:1=0x1 action 1
match 0:103:1=0x1 action 1
match 0:102:1=0x1 action 1
match 0:101:1=0x1 action 1
match 0:100:1=0x1 action 1
match 0:99:1=0x1 action 1
match 0:98:1=0x1 action 1
match 0:97:1=0x1 action 1
match 0:96:1=0x1 action 1
match 0:95:1=0x1 action 1
match 0:94:1=0x1 action 1
match 0:93:1=0x1 action 1
match 0:92:1=0x1 action 1
match 0:91:1=0x1 action 1
match 0:90:1=0x1 action 1
match 0:89:1=0x1 action 1
match 0:88:1=0x1 action 1
match 0:87:1=0x1 action 1
match 0:86:1=0x1 action 1
match 0:85:1=0x1 action 1
match 0:84:1=0x1 action 1
match 0:83:1=0x1 action 1
match 0:82:1=0x1 action 1
match 0:81:1=0x1 action 1
match 0:80:1=0x1 action 1
match 0:79:1=0x1 action 1
match 0:78:1=0x1 action 1
match 0:77:1=0x1 action 1
match 0:76:1=0x1 action 1
match 0:75:1=0x1 action 1
match 0:74:1=0x1 action 1
match 0:73:1=0x1 action 1
match 0:72:1=0x1 action 1
match 0:71:1=0x1 action 1
match 0:70:1=0x1 action 1
match 0:69:1=0x1 action 1
match 0:68:1=0x1 action 1
match 0:67:1=0x1 action 1
match 0:66:1=0x1 action 1
match 0:65:1=0x1 action 1
match 0:64:1=0x1 action 1
match 0:63:1=0x1 action 1
match 0:62:1=0x1 action 1
match 0:61:1=0x1 action 1
match 0:60:1=0x1 action 1
match 0:59:1=0x1 action 1
match 0:58:1=0x1 action 1
match 0:57:1=0x1 action 1
match 0:56:1=0x1 action 1
match 0:55:1=0x1 action 1
match 0:54:1=0x1 action 1
match 0:53:1=0x1 action 1
match 0:52:1=0x1 action 1
match 0:51:1=0x1 action 1
match 0:50:1=0x1 action 1
match 0:49:1=0x1 action 1
match 0:48:1=0x1 action 1
match 0:47:1=0x1 action 1
match 0:46:1=0x1 action 1
match 0:45:1=0x1 action 1
match 0:44:1=0x1 action 1
match 0:43:1=0x1 action 1
match 0:42:1=0x1 action 1
match 0:41:1=0x1 action 1
match 0:40:1=0x1 action 1
match 0:39:1=0x1 action 1
match 0:38:1=0x1 action 1
match 0:37:1=0x1 action 1
match 0:36:1=0x1 action 1
match 0:35:1=0x1 action 1
match 0:34:1=0x1 action 1
match 0:33:1=0x1 action 1
match 0:32:1=0x1 action 1
match 0:31:1=0x1 action 1
match 0:30:1=0x1 action 1
match 0:29:1=0x1 action 1
match 0:28:1=0x1 action 1
match 0:27:1=0x1 action 1
match 0:26:1=0x1 action 1
match 0:25:1=0x1 action 1
match 0:24:1=0x1 action 1
match 0:23:1=0x1 action 1
match 0:22:1=0x1 action 1
match 0:21:1=0x1 action 1
match 0:20:1=0x1 action 1
match 0:19:1=0x1 action 1
match 0:18:1=0x1 action 1
match 0:17:1=0x1 action 1
match 0:16:1=0x1 action 1
match 0:15:1=0x1 action 1
match 0:14:1=0x1 action 1
match 0:13:1=0x1 action 1
match 0:12:1=0x1 action 1
match 0:11:1=0x1 action 1
match 0:10:1=0x1 action 1
match 0:9:1=0x1 action 1
match 0:8:1=0x1 action 1
match 0:7:1=0x1 action 1
match 0:6:1=0x1 action 1
match 0:5:1=0x1 action 1
match 0:4:1=0x1 action 1
match 0:3:1=0x1 action 1
match 0:2:1=0x1 action 1
match 0:1:1=0x1 action 1
match 0:0:1=0x0 action 1
# build_ne_bit: != value exceeding mask ---------------------------------------
tcc -xif:err -One 2>&1 | grep match
prio {
    drop if raw[0] != 256;
}
EOF
match action 0
# build_ne_bit: (... & 0) != 0xff ---------------------------------------------
tcc -xif:err -One 2>&1 | grep match 
prio {
    drop if (raw[0] & 0) != 0xff;
}
EOF
match action 0
# build_ne_prefix: != unum ----------------------------------------------------
tcc -xif:err -One -Oprefix 2>&1 | grep 'match .* action'
prio {
    drop if raw[0] != 5;
}
EOF
match 0:0:8=0x04 action 1
match 0:0:7=0x03 action 1
match 0:0:6=0x00 action 1
match 0:0:5=0x01 action 1
match 0:0:4=0x1 action 1
match 0:0:3=0x1 action 1
match 0:0:2=0x1 action 1
match 0:0:1=0x1 action 1
# build_ne_prefix: != small u128 ----------------------------------------------
tcc -xif:err -One -Oprefix 2>&1 | grep 'match .* action'
prio {
    drop if raw[0] != ::5;
}
EOF
match 0:0:8=0x04 action 1
match 0:0:7=0x03 action 1
match 0:0:6=0x00 action 1
match 0:0:5=0x01 action 1
match 0:0:4=0x1 action 1
match 0:0:3=0x1 action 1
match 0:0:2=0x1 action 1
match 0:0:1=0x1 action 1
# build_ne_prefix: != large u128 ----------------------------------------------
tcc -xif:err -One -Oprefix 2>&1 | grep 'match .* action'
prio {
    drop if raw[0].ipv6 != 8000::1;
}
EOF
match 0:0:128=0x80000000000000000000000000000000 action 1
match 0:0:127=0x40000000000000000000000000000001 action 1
match 0:0:126=0x20000000000000000000000000000001 action 1
match 0:0:125=0x10000000000000000000000000000001 action 1
match 0:0:124=0x8000000000000000000000000000001 action 1
match 0:0:123=0x4000000000000000000000000000001 action 1
match 0:0:122=0x2000000000000000000000000000001 action 1
match 0:0:121=0x1000000000000000000000000000001 action 1
match 0:0:120=0x800000000000000000000000000001 action 1
match 0:0:119=0x400000000000000000000000000001 action 1
match 0:0:118=0x200000000000000000000000000001 action 1
match 0:0:117=0x100000000000000000000000000001 action 1
match 0:0:116=0x80000000000000000000000000001 action 1
match 0:0:115=0x40000000000000000000000000001 action 1
match 0:0:114=0x20000000000000000000000000001 action 1
match 0:0:113=0x10000000000000000000000000001 action 1
match 0:0:112=0x8000000000000000000000000001 action 1
match 0:0:111=0x4000000000000000000000000001 action 1
match 0:0:110=0x2000000000000000000000000001 action 1
match 0:0:109=0x1000000000000000000000000001 action 1
match 0:0:108=0x800000000000000000000000001 action 1
match 0:0:107=0x400000000000000000000000001 action 1
match 0:0:106=0x200000000000000000000000001 action 1
match 0:0:105=0x100000000000000000000000001 action 1
match 0:0:104=0x80000000000000000000000001 action 1
match 0:0:103=0x40000000000000000000000001 action 1
match 0:0:102=0x20000000000000000000000001 action 1
match 0:0:101=0x10000000000000000000000001 action 1
match 0:0:100=0x8000000000000000000000001 action 1
match 0:0:99=0x4000000000000000000000001 action 1
match 0:0:98=0x2000000000000000000000001 action 1
match 0:0:97=0x1000000000000000000000001 action 1
match 0:0:96=0x800000000000000000000001 action 1
match 0:0:95=0x400000000000000000000001 action 1
match 0:0:94=0x200000000000000000000001 action 1
match 0:0:93=0x100000000000000000000001 action 1
match 0:0:92=0x80000000000000000000001 action 1
match 0:0:91=0x40000000000000000000001 action 1
match 0:0:90=0x20000000000000000000001 action 1
match 0:0:89=0x10000000000000000000001 action 1
match 0:0:88=0x8000000000000000000001 action 1
match 0:0:87=0x4000000000000000000001 action 1
match 0:0:86=0x2000000000000000000001 action 1
match 0:0:85=0x1000000000000000000001 action 1
match 0:0:84=0x800000000000000000001 action 1
match 0:0:83=0x400000000000000000001 action 1
match 0:0:82=0x200000000000000000001 action 1
match 0:0:81=0x100000000000000000001 action 1
match 0:0:80=0x80000000000000000001 action 1
match 0:0:79=0x40000000000000000001 action 1
match 0:0:78=0x20000000000000000001 action 1
match 0:0:77=0x10000000000000000001 action 1
match 0:0:76=0x8000000000000000001 action 1
match 0:0:75=0x4000000000000000001 action 1
match 0:0:74=0x2000000000000000001 action 1
match 0:0:73=0x1000000000000000001 action 1
match 0:0:72=0x800000000000000001 action 1
match 0:0:71=0x400000000000000001 action 1
match 0:0:70=0x200000000000000001 action 1
match 0:0:69=0x100000000000000001 action 1
match 0:0:68=0x80000000000000001 action 1
match 0:0:67=0x40000000000000001 action 1
match 0:0:66=0x20000000000000001 action 1
match 0:0:65=0x10000000000000001 action 1
match 0:0:64=0x8000000000000001 action 1
match 0:0:63=0x4000000000000001 action 1
match 0:0:62=0x2000000000000001 action 1
match 0:0:61=0x1000000000000001 action 1
match 0:0:60=0x800000000000001 action 1
match 0:0:59=0x400000000000001 action 1
match 0:0:58=0x200000000000001 action 1
match 0:0:57=0x100000000000001 action 1
match 0:0:56=0x80000000000001 action 1
match 0:0:55=0x40000000000001 action 1
match 0:0:54=0x20000000000001 action 1
match 0:0:53=0x10000000000001 action 1
match 0:0:52=0x8000000000001 action 1
match 0:0:51=0x4000000000001 action 1
match 0:0:50=0x2000000000001 action 1
match 0:0:49=0x1000000000001 action 1
match 0:0:48=0x800000000001 action 1
match 0:0:47=0x400000000001 action 1
match 0:0:46=0x200000000001 action 1
match 0:0:45=0x100000000001 action 1
match 0:0:44=0x80000000001 action 1
match 0:0:43=0x40000000001 action 1
match 0:0:42=0x20000000001 action 1
match 0:0:41=0x10000000001 action 1
match 0:0:40=0x8000000001 action 1
match 0:0:39=0x4000000001 action 1
match 0:0:38=0x2000000001 action 1
match 0:0:37=0x1000000001 action 1
match 0:0:36=0x800000001 action 1
match 0:0:35=0x400000001 action 1
match 0:0:34=0x200000001 action 1
match 0:0:33=0x100000001 action 1
match 0:0:32=0x80000001 action 1
match 0:0:31=0x40000001 action 1
match 0:0:30=0x20000001 action 1
match 0:0:29=0x10000001 action 1
match 0:0:28=0x8000001 action 1
match 0:0:27=0x4000001 action 1
match 0:0:26=0x2000001 action 1
match 0:0:25=0x1000001 action 1
match 0:0:24=0x800001 action 1
match 0:0:23=0x400001 action 1
match 0:0:22=0x200001 action 1
match 0:0:21=0x100001 action 1
match 0:0:20=0x80001 action 1
match 0:0:19=0x40001 action 1
match 0:0:18=0x20001 action 1
match 0:0:17=0x10001 action 1
match 0:0:16=0x8001 action 1
match 0:0:15=0x4001 action 1
match 0:0:14=0x2001 action 1
match 0:0:13=0x1001 action 1
match 0:0:12=0x801 action 1
match 0:0:11=0x401 action 1
match 0:0:10=0x201 action 1
match 0:0:9=0x101 action 1
match 0:0:8=0x81 action 1
match 0:0:7=0x41 action 1
match 0:0:6=0x21 action 1
match 0:0:5=0x11 action 1
match 0:0:4=0x9 action 1
match 0:0:3=0x5 action 1
match 0:0:2=0x3 action 1
match 0:0:1=0x0 action 1
