Commit(s): JuliaLang/julia@58353fd273b0cea3b70495cebb9ce99908989570 vs JuliaLang/julia@ef4fe83698fb0d4cc5cc110164234eaf4b6d675e
Triggered By: link
Tag Predicate: ALL
Note: If Chrome is your browser, I strongly recommend installing the Wide GitHub extension, which makes the result table easier to read.
Below is a table of this job's results, obtained by running the benchmarks found in
JuliaCI/BaseBenchmarks.jl. The values
listed in the ID
column have the structure [parent_group, child_group, ..., key]
,
and can be used to index into the BaseBenchmarks suite to retrieve the corresponding
benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
A ratio greater than 1.0
denotes a possible regression (marked with ❌), while a ratio less
than 1.0
denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).
ID | time ratio | memory ratio |
---|---|---|
["array", "accumulate", "(\"accumulate\", \"Int\")"] |
1.05 (5%) ❌ | 1.00 (1%) |
["array", "cat", "(\"catnd\", 5)"] |
1.07 (5%) ❌ | 1.00 (1%) |
["array", "cat", "(\"catnd_setind\", 5)"] |
1.06 (5%) ❌ | 1.00 (1%) |
["array", "equality", "(\"isequal\", \"Array{Int64,1} isequal Array{Int64,1}\")"] |
1.07 (5%) ❌ | 1.00 (1%) |
["array", "reductions", "(\"perf_reduce\", \"Int64\")"] |
0.91 (5%) ✅ | 1.00 (1%) |
["array", "setindex!", "(\"setindex!\", 3)"] |
1.39 (5%) ❌ | 1.00 (1%) |
["array", "setindex!", "(\"setindex!\", 4)"] |
1.11 (5%) ❌ | 1.00 (1%) |
["broadcast", "mix_scalar_tuple", "(10, \"scal_tup_x3\")"] |
1.08 (5%) ❌ | 1.00 (1%) |
["broadcast", "mix_scalar_tuple", "(5, \"tup_tup\")"] |
1.05 (5%) ❌ | 1.00 (1%) |
["broadcast", "sparse", "((1000, 1000), 2)"] |
1.07 (5%) ❌ | 1.00 (1%) |
["collection", "queries & updates", "(\"Set\", \"Any\", \"push!\", \"new\")"] |
1.28 (25%) ❌ | 1.00 (1%) |
["collection", "queries & updates", "(\"Vector\", \"Any\", \"setindex!\")"] |
1.40 (25%) ❌ | 1.00 (1%) |
["dates", "parse", "(\"DateTime\", \"DateFormat\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["dates", "parse", "(\"DateTime\", \"RFC1123Format\", \"Mixedcase\")"] |
1.37 (5%) ❌ | 1.00 (1%) |
["dates", "parse", "(\"DateTime\", \"RFC1123Format\", \"Titlecase\")"] |
1.13 (5%) ❌ | 1.00 (1%) |
["dates", "string", "DateTime"] |
1.06 (5%) ❌ | 1.00 (1%) |
["find", "findnext", "(\"Array{Bool,1}\", \"50-50\")"] |
1.20 (5%) ❌ | 1.00 (1%) |
["find", "findprev", "(\"ispos\", \"Array{UInt64,1}\")"] |
0.93 (5%) ✅ | 1.00 (1%) |
["io", "array_limit", "(\"display\", \"Array{Float64,2}(10000, 10000)\")"] |
1.11 (5%) ❌ | 1.10 (1%) ❌ |
["linalg", "factorization", "(\"eigen\", \"Diagonal\", 256)"] |
2.33 (45%) ❌ | 1.00 (1%) |
["micro", "fib"] |
1.15 (5%) ❌ | 1.00 (1%) |
["misc", "iterators", "zip(1:1000, 1:1000, 1:1000)"] |
1.07 (5%) ❌ | 1.00 (1%) |
["misc", "iterators", "zip(1:1000, 1:1000, 1:1000, 1:1000)"] |
1.08 (5%) ❌ | 1.00 (1%) |
["problem", "seismic", "(\"seismic\", \"Float64\")"] |
0.93 (5%) ✅ | 1.00 (1%) |
["random", "ranges", "(\"rand\", \"MersenneTwister\", \"BigInt\", \"RangeGenerator(1:2^10000)\")"] |
0.73 (25%) ✅ | 1.00 (1%) |
["random", "ranges", "(\"rand\", \"MersenneTwister\", \"UInt64\", \"RangeGenerator(1:18446744073709551615)\")"] |
1.30 (25%) ❌ | 1.00 (1%) |
["scalar", "acos", "(\"abs(x) < 0.5\", \"positive argument\", \"Float32\")"] |
1.10 (5%) ❌ | 1.00 (1%) |
["scalar", "acos", "(\"zero\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "arithmetic", "(\"add\", \"UInt64\", \"BigInt\")"] |
1.55 (50%) ❌ | 1.00 (1%) |
["scalar", "arithmetic", "(\"mul\", \"BigInt\", \"Int64\")"] |
1.57 (50%) ❌ | 1.00 (1%) |
["scalar", "arithmetic", "(\"rem type\", \"Char\", \"BigInt\")"] |
1.57 (40%) ❌ | 1.00 (1%) |
["scalar", "asin", "(\"0.5 <= abs(x) < 0.975\", \"positive argument\", \"Float32\")"] |
0.93 (5%) ✅ | 1.00 (1%) |
["scalar", "asin", "(\"0.5 <= abs(x) < 0.975\", \"positive argument\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "asin", "(\"0.975 <= abs(x) < 1.0\", \"negative argument\", \"Float64\")"] |
0.93 (5%) ✅ | 1.00 (1%) |
["scalar", "asin", "(\"abs(x) < 0.5\", \"negative argument\", \"Float32\")"] |
0.86 (5%) ✅ | 1.00 (1%) |
["scalar", "asin", "(\"abs(x) < 0.5\", \"positive argument\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "asin", "(\"small\", \"negative argument\", \"Float32\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "asin", "(\"small\", \"negative argument\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "asin", "(\"small\", \"positive argument\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "asin", "(\"zero\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "asinh", "(\"very large\", \"positive argument\", \"Float64\")"] |
1.08 (5%) ❌ | 1.00 (1%) |
["scalar", "atan", "(\"0 <= abs(x) < 7/16\", \"positive argument\", \"Float32\")"] |
1.05 (5%) ❌ | 1.00 (1%) |
["scalar", "atan", "(\"very small\", \"negative argument\", \"Float32\")"] |
0.83 (5%) ✅ | 1.00 (1%) |
["scalar", "atan2", "(\"abs(y/x) safe (small)\", \"y negative\", \"x negative\", \"Float32\")"] |
0.82 (5%) ✅ | 1.00 (1%) |
["scalar", "atan2", "(\"x one\", \"Float64\")"] |
0.82 (5%) ✅ | 1.00 (1%) |
["scalar", "atan2", "(\"y infinite\", \"y positive\", \"x infinite\", \"x negative\", \"Float64\")"] |
0.93 (5%) ✅ | 1.00 (1%) |
["scalar", "atanh", "(\"2^-28 <= abs(x) < 0.5\", \"positive argument\", \"Float64\")"] |
1.07 (5%) ❌ | 1.00 (1%) |
["scalar", "atanh", "(\"very small\", \"negative argument\", \"Float64\")"] |
1.07 (5%) ❌ | 1.00 (1%) |
["scalar", "atanh", "(\"very small\", \"positive argument\", \"Float64\")"] |
1.07 (5%) ❌ | 1.00 (1%) |
["scalar", "atanh", "(\"zero\", \"Float32\")"] |
1.20 (5%) ❌ | 1.00 (1%) |
["scalar", "atanh", "(\"zero\", \"Float64\")"] |
1.07 (5%) ❌ | 1.00 (1%) |
["scalar", "cosh", "(\"very large\", \"negative argument\", \"Float64\")"] |
1.06 (5%) ❌ | 1.00 (1%) |
["scalar", "cosh", "(\"very large\", \"positive argument\", \"Float64\")"] |
1.06 (5%) ❌ | 1.00 (1%) |
["scalar", "cosh", "(\"very small\", \"negative argument\", \"Float64\")"] |
1.07 (5%) ❌ | 1.00 (1%) |
["scalar", "exp2", "(\"2pow1023\", \"negative argument\", Float64)"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "exp2", "(\"2pow35\", \"negative argument\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "expm1", "(\"huge\", \"positive argument\", \"Float64\")"] |
1.13 (5%) ❌ | 1.00 (1%) |
["scalar", "expm1", "(\"large\", \"negative argument\", \"Float32\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "mod2pi", "(\"argument reduction (easy) abs(x) > 2.0^20*π/2\", \"positive argument\", \"Float64\")"] |
1.07 (5%) ❌ | 1.00 (1%) |
["scalar", "sin", "(\"argument reduction (hard) abs(x) < 6π/4\", \"positive argument\", \"Float64\", \"cos_kernel\")"] |
1.07 (5%) ❌ | 1.00 (1%) |
["scalar", "sin", "(\"argument reduction (paynehanek) abs(x) > 2.0^20*π/2\", \"negative argument\", \"Float32\", \"cos_kernel\")"] |
1.06 (5%) ❌ | 1.00 (1%) |
["scalar", "sin", "(\"no reduction\", \"negative argument\", \"Float64\", \"sin_kernel\")"] |
1.11 (5%) ❌ | 1.00 (1%) |
["scalar", "sin", "(\"no reduction\", \"positive argument\", \"Float32\", \"sin_kernel\")"] |
1.06 (5%) ❌ | 1.00 (1%) |
["scalar", "sincos", "(\"argument reduction (easy) abs(x) < 6π/4\", \"positive argument\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "sincos", "(\"argument reduction (easy) abs(x) < 7π/4\", \"positive argument\", \"Float32\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "sincos", "(\"argument reduction (easy) abs(x) < 7π/4\", \"positive argument\", \"Float64\")"] |
0.75 (5%) ✅ | 1.00 (1%) |
["scalar", "sincos", "(\"argument reduction (easy) abs(x) < 8π/4\", \"positive argument\", \"Float32\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "sincos", "(\"argument reduction (easy) abs(x) < 8π/4\", \"positive argument\", \"Float64\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "sincos", "(\"argument reduction (easy) abs(x) < 9π/4\", \"negative argument\", \"Float32\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["scalar", "sincos", "(\"argument reduction (easy) abs(x) < 9π/4\", \"positive argument\", \"Float64\")"] |
0.91 (5%) ✅ | 1.00 (1%) |
["scalar", "tan", "(\"medium\", \"positive argument\", \"Float64\")"] |
1.08 (5%) ❌ | 1.00 (1%) |
["scalar", "tan", "(\"small\", \"positive argument\", \"Float32\")"] |
0.94 (5%) ✅ | 1.00 (1%) |
["shootout", "binary_trees"] |
0.94 (5%) ✅ | 1.00 (1%) |
["sparse", "constructors", "(\"Bidiagonal\", 100)"] |
1.07 (5%) ❌ | 1.00 (1%) |
["sparse", "constructors", "(\"IV\", 10)"] |
0.87 (5%) ✅ | 1.00 (1%) |
["sparse", "constructors", "(\"IV\", 1000)"] |
0.92 (5%) ✅ | 1.00 (1%) |
["sparse", "constructors", "(\"Tridiagonal\", 100)"] |
1.07 (5%) ❌ | 1.00 (1%) |
["tuple", "linear algebra", "(\"matmat\", (8, 8), (8, 8))"] |
1.19 (5%) ❌ | 1.00 (1%) |
["tuple", "reduction", "(\"sum\", (8,))"] |
0.90 (5%) ✅ | 1.00 (1%) |
["tuple", "reduction", "(\"sumabs\", (2, 2))"] |
0.93 (5%) ✅ | 1.00 (1%) |
["tuple", "reduction", "(\"sumabs\", (4, 4))"] |
1.09 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"broadcast\", *, Float32, (false, false))"] |
1.09 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"broadcast\", *, Float32, (true, true))"] |
0.93 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"broadcast\", *, Float64, (false, false))"] |
1.07 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"broadcast\", *, Int8, (false, true))"] |
1.06 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"broadcast\", abs, Float32, true)"] |
1.06 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"broadcast\", abs, Int8, true)"] |
1.09 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"broadcast\", identity, Bool, true)"] |
1.08 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"broadcast\", identity, Complex{Float64}, true)"] |
0.84 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"map\", abs, Bool, true)"] |
1.07 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"map\", abs, Float64, true)"] |
0.85 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"map\", identity, Complex{Float64}, false)"] |
0.89 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"map\", identity, Complex{Float64}, true)"] |
0.83 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"map\", identity, Int8, false)"] |
0.92 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"map\", identity, Int8, true)"] |
1.06 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_binaryop\", *, Complex{Float64}, (true, true))"] |
0.86 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_binaryop\", *, Float64, (false, true))"] |
0.87 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_countequals\", \"BigFloat\")"] |
0.95 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_countequals\", \"Float32\")"] |
1.08 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_countequals\", \"Float64\")"] |
1.13 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_simplecopy\", Bool, true)"] |
1.22 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_simplecopy\", Complex{Float64}, true)"] |
0.76 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_simplecopy\", Float32, true)"] |
1.17 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_simplecopy\", Int64, false)"] |
0.74 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_simplecopy\", Int64, true)"] |
1.11 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_simplecopy\", Int8, true)"] |
0.85 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_sum2\", Bool, true)"] |
1.20 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_sum2\", Float64, true)"] |
1.22 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_sum2\", Int8, false)"] |
1.21 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_sum2\", Int8, true)"] |
1.21 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_sum3\", Bool, true)"] |
0.84 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_sum3\", Complex{Float64}, true)"] |
1.22 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_sum3\", Float32, true)"] |
1.23 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_sum3\", Float64, true)"] |
1.13 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_sum3\", Int8, true)"] |
0.76 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_sum4\", Complex{Float64}, true)"] |
0.93 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"perf_sum\", Bool, true)"] |
1.16 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"perf_sum\", Float64, true)"] |
1.21 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"skipmissing\", collect, Union{Nothing, BigInt}, false)"] |
1.06 (5%) ❌ | 1.00 (1%) |
["union", "array", "(\"skipmissing\", sum, Union{Missing, Bool}, true)"] |
0.79 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"skipmissing\", sum, Union{Missing, Complex{Float64}}, true)"] |
0.87 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"skipmissing\", sum, Union{Missing, Float64}, true)"] |
0.92 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"sort\", Union{Nothing, Float32}, false)"] |
0.74 (5%) ✅ | 1.00 (1%) |
["union", "array", "(\"sort\", Union{Nothing, Int8}, false)"] |
1.61 (5%) ❌ | 1.00 (1%) |
Here's a list of all the benchmark groups executed by this job:
["array", "accumulate"]
["array", "any/all"]
["array", "bool"]
["array", "cat"]
["array", "comprehension"]
["array", "convert"]
["array", "equality"]
["array", "growth"]
["array", "index"]
["array", "reductions"]
["array", "reverse"]
["array", "setindex!"]
["array", "subarray"]
["broadcast"]
["broadcast", "dotop"]
["broadcast", "fusion"]
["broadcast", "mix_scalar_tuple"]
["broadcast", "sparse"]
["broadcast", "typeargs"]
["collection", "deletion"]
["collection", "initialization"]
["collection", "iteration"]
["collection", "optimizations"]
["collection", "queries & updates"]
["collection", "set operations"]
["dates", "accessor"]
["dates", "arithmetic"]
["dates", "construction"]
["dates", "conversion"]
["dates", "parse"]
["dates", "query"]
["dates", "string"]
["find", "findall"]
["find", "findnext"]
["find", "findprev"]
["io", "array_limit"]
["io", "read"]
["io", "serialization"]
["io"]
["linalg", "arithmetic"]
["linalg", "blas"]
["linalg", "factorization"]
["linalg"]
["micro"]
["misc"]
["misc", "23042"]
["misc", "afoldl"]
["misc", "allocation elision view"]
["misc", "bitshift"]
["misc", "issue 12165"]
["misc", "iterators"]
["misc", "julia"]
["misc", "parse"]
["misc", "repeat"]
["misc", "splatting"]
["parallel", "remotecall"]
["problem", "chaosgame"]
["problem", "fem"]
["problem", "go"]
["problem", "grigoriadis khachiyan"]
["problem", "imdb"]
["problem", "json"]
["problem", "laplacian"]
["problem", "monte carlo"]
["problem", "raytrace"]
["problem", "seismic"]
["problem", "simplex"]
["problem", "spellcheck"]
["problem", "stockcorr"]
["problem", "ziggurat"]
["random", "collections"]
["random", "randstring"]
["random", "ranges"]
["random", "sequences"]
["random", "types"]
["scalar", "acos"]
["scalar", "acosh"]
["scalar", "arithmetic"]
["scalar", "asin"]
["scalar", "asinh"]
["scalar", "atan"]
["scalar", "atan2"]
["scalar", "atanh"]
["scalar", "cbrt"]
["scalar", "cos"]
["scalar", "cosh"]
["scalar", "exp2"]
["scalar", "expm1"]
["scalar", "fastmath"]
["scalar", "floatexp"]
["scalar", "intfuncs"]
["scalar", "iteration"]
["scalar", "mod2pi"]
["scalar", "predicate"]
["scalar", "rem_pio2"]
["scalar", "sin"]
["scalar", "sincos"]
["scalar", "sinh"]
["scalar", "tan"]
["scalar", "tanh"]
["shootout"]
["simd"]
["sort", "insertionsort"]
["sort", "issorted"]
["sort", "mergesort"]
["sort", "quicksort"]
["sparse", "arithmetic"]
["sparse", "constructors"]
["sparse", "index"]
["sparse", "matmul"]
["sparse", "sparse matvec"]
["sparse", "sparse solves"]
["sparse", "transpose"]
["string", "findfirst"]
["string"]
["string", "readuntil"]
["string", "repeat"]
["tuple", "index"]
["tuple", "linear algebra"]
["tuple", "misc"]
["tuple", "reduction"]
["union", "array"]
Julia Version 1.4.2-pre.13
Commit 58353fd (2020-05-10 17:03 UTC)
Platform Info:
OS: Linux (x86_64-linux-gnu)
Ubuntu 14.04.5 LTS
uname: Linux 3.13.0-85-generic #129-Ubuntu SMP Thu Mar 17 20:50:15 UTC 2016 x86_64 x86_64
CPU: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz:
speed user nice sys idle irq
#1 3501 MHz 57332824 s 2449 s 20306161 s 6599205039 s 19 s
#2 3501 MHz 359834305 s 62 s 7563268 s 6327496162 s 27 s
#3 3501 MHz 48467032 s 3236 s 5765719 s 6638721047 s 40 s
#4 3501 MHz 46676734 s 19 s 4452892 s 6645848690 s 37 s
Memory: 31.383651733398438 GB (19123.75 MB free)
Uptime: 6.6988294e7 sec
Load Avg: 1.0029296875 1.0146484375 1.04541015625
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, haswell)
Julia Version 1.4.2-pre.0
Commit ef4fe83 (2020-04-15 16:24 UTC)
Platform Info:
OS: Linux (x86_64-linux-gnu)
Ubuntu 14.04.5 LTS
uname: Linux 3.13.0-85-generic #129-Ubuntu SMP Thu Mar 17 20:50:15 UTC 2016 x86_64 x86_64
CPU: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz:
speed user nice sys idle irq
#1 3501 MHz 57457449 s 2449 s 20315758 s 6600474463 s 19 s
#2 3501 MHz 361142597 s 62 s 7589216 s 6327570376 s 27 s
#3 3501 MHz 48590446 s 3236 s 5771104 s 6639999599 s 40 s
#4 3501 MHz 46803604 s 19 s 4458257 s 6647124836 s 37 s
Memory: 31.383651733398438 GB (18743.95703125 MB free)
Uptime: 6.7002381e7 sec
Load Avg: 1.0029296875 1.0146484375 1.04541015625
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, haswell)