{"record":{"id":"1724da6c5aa3d776","repo":"rust-lang/rust","slug":"f128","errorCode":null,"errorMessage":"f128","messagePattern":"f128","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/tools/miri/src/intrinsics/simd.rs","lineNumber":75,"sourceCode":"                    \"flog\" => HostUnaryFloatOp::Log,\n                    \"flog2\" => HostUnaryFloatOp::Log2,\n                    \"flog10\" => HostUnaryFloatOp::Log10,\n                    _ => bug!(),\n                };\n\n                for i in 0..dest_len {\n                    let op = this.project_index(&op, i)?;\n                    let dest = this.project_index(&dest, i)?;\n                    let ty::Float(float_ty) = op.layout.ty.kind() else {\n                        span_bug!(this.cur_span(), \"{} operand is not a float\", intrinsic_name)\n                    };\n                    // Using host floats except for sqrt (but it's fine, these operations do not\n                    // have guaranteed precision).\n                    match float_ty {\n                        FloatTy::F16 => host_unary_float_op::<HalfS>(this, &op, host_op, &dest)?,\n                        FloatTy::F32 => host_unary_float_op::<SingleS>(this, &op, host_op, &dest)?,\n                        FloatTy::F64 => host_unary_float_op::<DoubleS>(this, &op, host_op, &dest)?,\n                        FloatTy::F128 => unimplemented!(\"f128\"), // FIXME(f128)\n                    }\n                }\n            }\n            \"expose_provenance\" => {\n                let [op] = check_intrinsic_arg_count(args)?;\n                let (op, op_len) = this.project_to_simd(op)?;\n                let (dest, dest_len) = this.project_to_simd(dest)?;\n\n                assert_eq!(dest_len, op_len);\n\n                for i in 0..dest_len {\n                    let op = this.read_immediate(&this.project_index(&op, i)?)?;\n                    let dest = this.project_index(&dest, i)?;\n\n                    let val = match (op.layout.ty.kind(), dest.layout.ty.kind()) {\n                        // Ptr/Int casts\n                        (ty::RawPtr(..), ty::Int(_) | ty::Uint(_)) =>\n                            this.pointer_expose_provenance_cast(&op, dest.layout)?,","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/rust-lang/rust/blob/7088e4b63a9516ebfbfe2ab2d999cf01a528ac14/src/tools/miri/src/intrinsics/simd.rs#L57-L93","documentation":"In Miri, the SIMD float unary-op handler (src/tools/miri/src/intrinsics/simd.rs) dispatches on FloatTy for f16/f32/f64 but for FloatTy::F128 it hits unimplemented!(\"f128\") (FIXME(f128)). Any SIMD float intrinsic applied to an f128 lane vector is unsupported and aborts interpretation.","triggerScenarios":"Running Miri on code that calls a SIMD float intrinsic (e.g. simd_fsqrt, simd_fabs, simd_fsin-style ops) on a vector of f128 elements: core::intrinsics::simd::* with a Simd<f128, N> operand.","commonSituations":"Testing experimental f128 SIMD code under Miri; running the test suite of a crate that uses 128-bit float SIMD intrinsics on a recent nightly.","solutions":["Do not run f128 SIMD float intrinsics under Miri; test the scalar path or a smaller float type instead.","Gate f128 SIMD tests behind a cfg that skips Miri (e.g. #[cfg_attr(miri, ignore)]).","Implement the op with host floats on f64 lanes as an approximation while testing.","Track the FIXME(f128) Miri issue and upstream f128 support."],"exampleFix":"// before\nlet r: Simd<f128, 4> = core::intrinsics::simd::simd_fsqrt(v);\n$ cargo miri test   // panics: f128\n\n// after\n#[cfg_attr(miri, ignore)]\nfn test_f128_simd_sqrt() { /* ... */ }","handlingStrategy":"validation","validationCode":"// Skip f128 SIMD intrinsic tests under Miri.\n#[cfg_attr(miri, ignore)]\nfn test_f128_simd_sqrt() { /* core::intrinsics::simd::simd_fsqrt on f128 */ }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Do not run f128 SIMD intrinsics under Miri.","Mark f128 SIMD tests #[cfg_attr(miri, ignore)].","Approximate with f64 host floats while testing."],"tags":["miri","simd","f128","intrinsics","nightly"],"backgroundTag":null,"analyzedSha":"7088e4b63a9516ebfbfe2ab2d999cf01a528ac14","analyzedAt":"2026-08-10T14:17:03.603Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}