mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +00:00
Add an option to the shuffle fuzzer that lets you fuzz exclusively
within a single bit-width of vectors. This is particularly useful for when you know you have bugs in a certain area and want to find simpler test cases than those produced by an open-ended fuzzing that ends up legalizing the vector in addition to shuffling it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215056 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
14d29b65e5
commit
792202d090
@ -26,14 +26,28 @@ def main():
|
||||
help='Show verbose output')
|
||||
parser.add_argument('--fixed-num-shuffles', type=int,
|
||||
help='Specify a fixed number of shuffles to test')
|
||||
parser.add_argument('--fixed-bit-width', type=int, choices=[128, 256],
|
||||
help='Specify a fixed bit width of vector to test')
|
||||
parser.add_argument('--triple',
|
||||
help='Specify a triple string to include in the IR')
|
||||
args = parser.parse_args()
|
||||
|
||||
random.seed(args.seed)
|
||||
|
||||
width = random.choice([2, 4, 8, 16, 32, 64])
|
||||
element_type = random.choice(['i8', 'i16', 'i32', 'i64', 'f32', 'f64'])
|
||||
if args.fixed_bit_width is not None:
|
||||
if args.fixed_bit_width == 128:
|
||||
(width, element_type) = random.choice(
|
||||
[(2, 'i64'), (4, 'i32'), (8, 'i16'), (16, 'i8'),
|
||||
(2, 'f64'), (4, 'f32')])
|
||||
elif args.fixed_bit_width == 256:
|
||||
(width, element_type) = random.choice([
|
||||
(4, 'i64'), (8, 'i32'), (16, 'i16'), (32, 'i8'),
|
||||
(4, 'f64'), (8, 'f32')])
|
||||
else:
|
||||
sys.exit(1) # Checked above by argument parsing.
|
||||
else:
|
||||
width = random.choice([2, 4, 8, 16, 32, 64])
|
||||
element_type = random.choice(['i8', 'i16', 'i32', 'i64', 'f32', 'f64'])
|
||||
|
||||
# FIXME: Support blends.
|
||||
shuffle_indices = [-1] + range(width)
|
||||
|
Loading…
Reference in New Issue
Block a user