ptx_parser/parser/instruction/
rsqrt_approx_ftz_f64.rs

1//! Original PTX specification:
2//!
3//! rsqrt.approx.ftz.f64 d, a;
4
5#![allow(unused)]
6
7use crate::lexer::PtxToken;
8use crate::parser::{PtxParseError, PtxParser, PtxTokenStream, Span};
9use crate::r#type::common::*;
10
11pub mod section_0 {
12    use super::*;
13    use crate::r#type::instruction::rsqrt_approx_ftz_f64::section_0::*;
14
15    impl PtxParser for RsqrtApproxFtzF64 {
16        fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
17            stream.expect_string("rsqrt")?;
18            stream.expect_string(".approx")?;
19            let approx = ();
20            stream.expect_complete()?;
21            stream.expect_string(".ftz")?;
22            let ftz = ();
23            stream.expect_complete()?;
24            stream.expect_string(".f64")?;
25            let f64 = ();
26            stream.expect_complete()?;
27            let d = GeneralOperand::parse(stream)?;
28            stream.expect_complete()?;
29            stream.expect(&PtxToken::Comma)?;
30            let a = GeneralOperand::parse(stream)?;
31            stream.expect_complete()?;
32            stream.expect_complete()?;
33            stream.expect(&PtxToken::Semicolon)?;
34            Ok(RsqrtApproxFtzF64 {
35                approx,
36                ftz,
37                f64,
38                d,
39                a,
40            })
41        }
42    }
43
44
45}
46