/ individual generalizations / generalization 'Tab4.D' / witness
Abstract Instructions:
0
  • exact_scheme: bsf W:GPR:64, R:GPR:64
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {R:GPR:64, W:GPR:64, W:flag_af, W:flag_cf, W:flag_of, W:flag_pf, W:flag_sf, W:flag_zf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: BASE
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {R:GPR:64, W:GPR:64, W:flag_af, W:flag_cf, W:flag_of, W:flag_pf, W:flag_sf, W:flag_zf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: BASE
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {R:GPR:64, W:GPR:64, W:flag_cf, W:flag_of, W:flag_pf, W:flag_sf, W:flag_zf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: BASE
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {R:GPR:64, W:GPR:64, W:flag_cf, W:flag_of, W:flag_pf, W:flag_sf, W:flag_zf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: TOP
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_cf, W:flag_of, W:flag_pf, W:flag_sf, W:flag_zf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: TOP
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_cf, W:flag_pf, W:flag_sf, W:flag_zf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: TOP
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_cf, W:flag_sf, W:flag_zf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: TOP
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_cf, W:flag_sf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: TOP
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_sf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: TOP
  • isa-set: I386
  • has_lock: False
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_sf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: BITBYTE
  • extension: TOP
  • isa-set: I386
  • has_lock: TOP
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_sf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: I386
  • has_lock: TOP
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_sf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 0 edits
  • opschemes: {W:GPR:64, W:flag_sf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: I386
  • has_lock: TOP
  • has_rep: False
(1)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1')
TOP
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64, W:flag_sf}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: False
(2)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: False
(2)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(2)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64}
  • memory_usage: TOP
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(4)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 2 edits
  • opschemes: {W:GPR:64}
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(4)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: TOP
  • memory_usage: definitely not
  • uops_on_SKL: at most 1
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(6)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64}
  • memory_usage: TOP
  • uops_on_SKL: at most 3
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(4)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64}
  • memory_usage: TOP
  • uops_on_SKL: at most 7
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(4)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64}
  • memory_usage: TOP
  • uops_on_SKL: at most 15
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(4)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64}
  • memory_usage: TOP
  • uops_on_SKL: at most 31
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(4)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Abstract Instructions:
0
  • exact_scheme: TOP
  • mnemonic: 'bsf' + at most 1 edits
  • opschemes: {W:GPR:64}
  • memory_usage: TOP
  • uops_on_SKL: TOP
  • category: TOP
  • extension: TOP
  • isa-set: TOP
  • has_lock: TOP
  • has_rep: TOP
(4)
Abstract Aliasing:
0:(E, 'reg0') - 0:(E, 'reg1') must not alias
Terminated: No more expansions remain.

Feature Documentation: Witness View

This page shows the decisions taken in the generalization of a specific discovery and why they were taken.

The decisions are arranged in a tree with abstract basic blocks as nodes. The root (on the top, blue) is the starting abstract block, which was directly abstracted from a concrete basic block.

Successors have one component (highlighted in orange) changed compared to their predecessor. If this change still produced an interesting result, the corresponding abstract block is taken (green) and used to continue generalization. If the change made a not uniformly interesting result, it is discarded (red). If no more fresh choices for generalization are available, the procedure terminates.

You can click on abstract blocks to display a list of sampled concrete basic blocks that were used to judge its interestingness.