Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Jul 17th, 2012  |  syntax: ASM (NASM)  |  size: 19.66 KB  |  views: 50  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. //
  2. // Generated by NVIDIA NVVM Compiler
  3. // Compiler built on Sat Apr  7 09:27:48 2012 (1333783668)
  4. // Driver 295.41
  5. //
  6.  
  7. .version 3.0
  8. .target sm_13, texmode_independent
  9. .address_size 32
  10.  
  11. .entry butterfC(
  12.         .param .u32 .ptr .global .align 8 butterfC_param_0,
  13.         .param .u32 .ptr .global .align 8 butterfC_param_1,
  14.         .param .u32 .ptr .global .align 8 butterfC_param_2,
  15.         .param .u32 butterfC_param_3,
  16.         .param .u32 butterfC_param_4,
  17.         .param .u32 butterfC_param_5,
  18.         .param .u32 butterfC_param_6,
  19.         .param .u32 butterfC_param_7,
  20.         .param .u32 butterfC_param_8
  21. )
  22. {
  23.         .reg .f32       %f<257>;
  24.         .reg .f64       %fd<244>;
  25.         .reg .pred      %p<41>;
  26.         .reg .s32       %r<111>;
  27.  
  28.  
  29.         ld.param.u32    %r1, [butterfC_param_6];
  30.         mov.f32         %f32, 0f40800000;
  31.         // inline asm
  32.         abs.f32         %f31, %f32;
  33.         // inline asm
  34.         cvt.rn.f32.u32  %f251, %r1;
  35.         setp.equ.f32    %p1, %f251, 0f00000000;
  36.         @%p1 bra        BB5_12;
  37.  
  38.         mov.f32         %f3, 0f7F800000;
  39.         setp.eq.f32     %p2, %f251, 0f7F800000;
  40.         setp.eq.f32     %p3, %f251, 0fFF800000;
  41.         or.pred         %p4, %p2, %p3;
  42.         @%p4 bra        BB5_12;
  43.  
  44.         setp.eq.f32     %p5, %f31, 0f00000000;
  45.         @%p5 bra        BB5_12;
  46.  
  47.         // inline asm
  48.         abs.f32         %f37, %f32;
  49.         // inline asm
  50.         mov.b32          %r2, %f37;
  51.         shr.u32         %r41, %r2, 23;
  52.         and.b32         %r42, %r41, 255;
  53.         add.s32         %r105, %r42, -127;
  54.         setp.eq.s32     %p6, %r42, 0;
  55.         mov.f32         %f249, %f37;
  56.         @%p6 bra        BB5_4;
  57.         bra.uni         BB5_5;
  58.  
  59. BB5_4:
  60.         and.b32         %r43, %r2, -2139095041;
  61.         or.b32          %r44, %r43, 1065353216;
  62.         mov.b32          %f39, %r44;
  63.         add.f32         %f40, %f39, 0fBF800000;
  64.         mov.b32          %r45, %f40;
  65.         shr.u32         %r46, %r45, 23;
  66.         and.b32         %r47, %r46, 255;
  67.         add.s32         %r105, %r47, -253;
  68.         and.b32         %r48, %r45, -2139095041;
  69.         or.b32          %r49, %r48, 1065353216;
  70.         mov.b32          %f249, %r49;
  71.  
  72. BB5_5:
  73.         mov.b32          %r50, %f249;
  74.         and.b32         %r51, %r50, -2139095041;
  75.         or.b32          %r52, %r51, 1065353216;
  76.         mov.b32          %f250, %r52;
  77.         setp.gt.f32     %p7, %f250, 0f3FB504F3;
  78.         @%p7 bra        BB5_6;
  79.         bra.uni         BB5_7;
  80.  
  81. BB5_6:
  82.         mov.f32         %f41, 0f3F000000;
  83.         mul.rn.f32      %f250, %f250, %f41;
  84.         add.s32         %r105, %r105, 1;
  85.  
  86. BB5_7:
  87.         add.f32         %f50, %f250, 0f3F800000;
  88.         rcp.approx.f32  %f44, %f50;
  89.         add.f32         %f43, %f250, 0fBF800000;
  90.         // inline asm
  91.         mul.rz.f32      %f42, %f43, %f44;
  92.         // inline asm
  93.         mov.f32         %f51, 0f40000000;
  94.         mul.rn.f32      %f52, %f51, %f42;
  95.         mul.rn.f32      %f53, %f52, %f52;
  96.         mov.f32         %f54, 0f3B18F0FE;
  97.         mul.rn.f32      %f55, %f54, %f53;
  98.         add.f32         %f56, %f55, 0f3C4CAF63;
  99.         mul.rn.f32      %f57, %f56, %f53;
  100.         add.f32         %f58, %f57, 0f3DAAAABD;
  101.         mul.rn.f32      %f59, %f58, %f53;
  102.         mul.rn.f32      %f47, %f59, %f52;
  103.         mov.b32          %r53, %f52;
  104.         and.b32         %r54, %r53, -4096;
  105.         mov.b32          %f60, %r54;
  106.         mov.b32          %r55, %f43;
  107.         and.b32         %r56, %r55, -4096;
  108.         mov.b32          %f61, %r56;
  109.         sub.f32         %f62, %f43, %f60;
  110.         mul.rn.f32      %f63, %f51, %f62;
  111.         sub.f32         %f64, %f43, %f61;
  112.         mul.rn.f32      %f65, %f60, %f61;
  113.         sub.f32         %f66, %f63, %f65;
  114.         mul.rn.f32      %f67, %f60, %f64;
  115.         sub.f32         %f68, %f66, %f67;
  116.         mul.rn.f32      %f69, %f44, %f68;
  117.         add.f32         %f70, %f60, %f69;
  118.         sub.f32         %f71, %f70, %f60;
  119.         sub.f32         %f72, %f69, %f71;
  120.         add.f32         %f73, %f70, %f47;
  121.         sub.f32         %f46, %f70, %f73;
  122.         // inline asm
  123.         add.rz.f32      %f45, %f46, %f47;
  124.         // inline asm
  125.         add.f32         %f74, %f45, %f72;
  126.         add.f32         %f75, %f73, %f74;
  127.         sub.f32         %f76, %f73, %f75;
  128.         add.f32         %f77, %f76, %f74;
  129.         cvt.rn.f32.s32  %f78, %r105;
  130.         mov.f32         %f79, 0f3F317200;
  131.         mul.rn.f32      %f80, %f78, %f79;
  132.         mov.f32         %f81, 0f35BFBE8E;
  133.         mul.rn.f32      %f82, %f78, %f81;
  134.         add.f32         %f83, %f80, %f75;
  135.         sub.f32         %f84, %f80, %f83;
  136.         add.f32         %f85, %f84, %f75;
  137.         add.f32         %f86, %f85, %f77;
  138.         add.f32         %f87, %f86, %f82;
  139.         add.f32         %f10, %f83, %f87;
  140.         sub.f32         %f88, %f83, %f10;
  141.         add.f32         %f11, %f88, %f87;
  142.         // inline asm
  143.         abs.f32         %f48, %f251;
  144.         // inline asm
  145.         setp.gt.f32     %p8, %f48, 0f77F684DF;
  146.         @%p8 bra        BB5_8;
  147.         bra.uni         BB5_9;
  148.  
  149. BB5_8:
  150.         mov.f32         %f89, 0f39000000;
  151.         mul.rn.f32      %f251, %f251, %f89;
  152.  
  153. BB5_9:
  154.         mov.f32         %f90, 0f45800800;
  155.         mul.rn.f32      %f91, %f10, %f90;
  156.         sub.f32         %f92, %f10, %f91;
  157.         add.f32         %f93, %f92, %f91;
  158.         sub.f32         %f94, %f10, %f93;
  159.         mul.rn.f32      %f95, %f251, %f90;
  160.         sub.f32         %f96, %f251, %f95;
  161.         add.f32         %f97, %f96, %f95;
  162.         sub.f32         %f98, %f251, %f97;
  163.         mul.rn.f32      %f99, %f93, %f97;
  164.         mul.rn.f32      %f100, %f10, %f251;
  165.         sub.f32         %f101, %f99, %f100;
  166.         mul.rn.f32      %f102, %f93, %f98;
  167.         add.f32         %f103, %f101, %f102;
  168.         mul.rn.f32      %f104, %f94, %f97;
  169.         add.f32         %f105, %f103, %f104;
  170.         mul.rn.f32      %f106, %f94, %f98;
  171.         add.f32         %f107, %f105, %f106;
  172.         mul.rn.f32      %f108, %f11, %f251;
  173.         add.f32         %f109, %f108, %f107;
  174.         add.f32         %f110, %f100, %f109;
  175.         sub.f32         %f111, %f100, %f110;
  176.         add.f32         %f14, %f111, %f109;
  177.         mov.f32         %f245, %f14;
  178.         mov.f32         %f256, %f110;
  179.         mov.b32          %r8, %f110;
  180.         setp.eq.s32     %p9, %r8, 1118925336;
  181.         @%p9 bra        BB5_10;
  182.         bra.uni         BB5_11;
  183.  
  184. BB5_10:
  185.         add.s32         %r57, %r8, -1;
  186.         mov.b32          %f112, %r57;
  187.         add.f32         %f113, %f14, 0f37000000;
  188.         mov.f32         %f247, %f113;
  189.         mov.f32         %f256, %f112;
  190.  
  191. BB5_11:
  192.         mov.f32         %f121, 0f3FB8AA3B;
  193.         mul.rn.f32      %f115, %f256, %f121;
  194.         // inline asm
  195.         cvt.rzi.f32.f32         %f114, %f115;
  196.         // inline asm
  197.         mul.rn.f32      %f123, %f114, %f79;
  198.         sub.f32         %f124, %f256, %f123;
  199.         mul.rn.f32      %f126, %f114, %f81;
  200.         sub.f32         %f127, %f124, %f126;
  201.         mul.rn.f32      %f117, %f127, %f121;
  202.         // inline asm
  203.         ex2.approx.f32  %f116, %f117;
  204.         // inline asm
  205.         add.f32         %f119, %f114, 0f00000000;
  206.         // inline asm
  207.         ex2.approx.f32  %f118, %f119;
  208.         // inline asm
  209.         mul.rn.f32      %f128, %f116, %f118;
  210.         setp.lt.f32     %p10, %f256, 0fC2D20000;
  211.         selp.f32        %f129, 0f00000000, %f128, %p10;
  212.         setp.gt.f32     %p11, %f256, 0f42D20000;
  213.         selp.f32        %f15, %f3, %f129, %p11;
  214.         setp.eq.f32     %p12, %f15, %f3;
  215.  
  216. BB5_12:
  217.         ld.param.u32    %r104, [butterfC_param_6];
  218.         add.s32         %r58, %r104, -1;
  219.         cvt.rn.f32.u32  %f254, %r58;
  220.         // inline asm
  221.         abs.f32         %f134, %f32;
  222.         // inline asm
  223.         setp.equ.f32    %p13, %f254, 0f00000000;
  224.         @%p13 bra       BB5_24;
  225.  
  226.         mov.f32         %f18, 0f7F800000;
  227.         setp.eq.f32     %p14, %f254, 0f7F800000;
  228.         setp.eq.f32     %p15, %f254, 0fFF800000;
  229.         or.pred         %p16, %p14, %p15;
  230.         @%p16 bra       BB5_24;
  231.  
  232.         setp.eq.f32     %p17, %f134, 0f00000000;
  233.         @%p17 bra       BB5_24;
  234.  
  235.         // inline asm
  236.         abs.f32         %f140, %f32;
  237.         // inline asm
  238.         mov.b32          %r9, %f140;
  239.         shr.u32         %r59, %r9, 23;
  240.         and.b32         %r60, %r59, 255;
  241.         add.s32         %r106, %r60, -127;
  242.         setp.eq.s32     %p18, %r60, 0;
  243.         mov.f32         %f252, %f140;
  244.         @%p18 bra       BB5_16;
  245.         bra.uni         BB5_17;
  246.  
  247. BB5_16:
  248.         and.b32         %r61, %r9, -2139095041;
  249.         or.b32          %r62, %r61, 1065353216;
  250.         mov.b32          %f142, %r62;
  251.         add.f32         %f143, %f142, 0fBF800000;
  252.         mov.b32          %r63, %f143;
  253.         shr.u32         %r64, %r63, 23;
  254.         and.b32         %r65, %r64, 255;
  255.         add.s32         %r106, %r65, -253;
  256.         and.b32         %r66, %r63, -2139095041;
  257.         or.b32          %r67, %r66, 1065353216;
  258.         mov.b32          %f252, %r67;
  259.  
  260. BB5_17:
  261.         mov.b32          %r68, %f252;
  262.         and.b32         %r69, %r68, -2139095041;
  263.         or.b32          %r70, %r69, 1065353216;
  264.         mov.b32          %f253, %r70;
  265.         setp.gt.f32     %p19, %f253, 0f3FB504F3;
  266.         @%p19 bra       BB5_18;
  267.         bra.uni         BB5_19;
  268.  
  269. BB5_18:
  270.         mov.f32         %f144, 0f3F000000;
  271.         mul.rn.f32      %f253, %f253, %f144;
  272.         add.s32         %r106, %r106, 1;
  273.  
  274. BB5_19:
  275.         add.f32         %f153, %f253, 0f3F800000;
  276.         rcp.approx.f32  %f147, %f153;
  277.         add.f32         %f146, %f253, 0fBF800000;
  278.         // inline asm
  279.         mul.rz.f32      %f145, %f146, %f147;
  280.         // inline asm
  281.         mov.f32         %f154, 0f40000000;
  282.         mul.rn.f32      %f155, %f154, %f145;
  283.         mul.rn.f32      %f156, %f155, %f155;
  284.         mov.f32         %f157, 0f3B18F0FE;
  285.         mul.rn.f32      %f158, %f157, %f156;
  286.         add.f32         %f159, %f158, 0f3C4CAF63;
  287.         mul.rn.f32      %f160, %f159, %f156;
  288.         add.f32         %f161, %f160, 0f3DAAAABD;
  289.         mul.rn.f32      %f162, %f161, %f156;
  290.         mul.rn.f32      %f150, %f162, %f155;
  291.         mov.b32          %r71, %f155;
  292.         and.b32         %r72, %r71, -4096;
  293.         mov.b32          %f163, %r72;
  294.         mov.b32          %r73, %f146;
  295.         and.b32         %r74, %r73, -4096;
  296.         mov.b32          %f164, %r74;
  297.         sub.f32         %f165, %f146, %f163;
  298.         mul.rn.f32      %f166, %f154, %f165;
  299.         sub.f32         %f167, %f146, %f164;
  300.         mul.rn.f32      %f168, %f163, %f164;
  301.         sub.f32         %f169, %f166, %f168;
  302.         mul.rn.f32      %f170, %f163, %f167;
  303.         sub.f32         %f171, %f169, %f170;
  304.         mul.rn.f32      %f172, %f147, %f171;
  305.         add.f32         %f173, %f163, %f172;
  306.         sub.f32         %f174, %f173, %f163;
  307.         sub.f32         %f175, %f172, %f174;
  308.         add.f32         %f176, %f173, %f150;
  309.         sub.f32         %f149, %f173, %f176;
  310.         // inline asm
  311.         add.rz.f32      %f148, %f149, %f150;
  312.         // inline asm
  313.         add.f32         %f177, %f148, %f175;
  314.         add.f32         %f178, %f176, %f177;
  315.         sub.f32         %f179, %f176, %f178;
  316.         add.f32         %f180, %f179, %f177;
  317.         cvt.rn.f32.s32  %f181, %r106;
  318.         mov.f32         %f182, 0f3F317200;
  319.         mul.rn.f32      %f183, %f181, %f182;
  320.         mov.f32         %f184, 0f35BFBE8E;
  321.         mul.rn.f32      %f185, %f181, %f184;
  322.         add.f32         %f186, %f183, %f178;
  323.         sub.f32         %f187, %f183, %f186;
  324.         add.f32         %f188, %f187, %f178;
  325.         add.f32         %f189, %f188, %f180;
  326.         add.f32         %f190, %f189, %f185;
  327.         add.f32         %f25, %f186, %f190;
  328.         sub.f32         %f191, %f186, %f25;
  329.         add.f32         %f26, %f191, %f190;
  330.         // inline asm
  331.         abs.f32         %f151, %f254;
  332.         // inline asm
  333.         setp.gt.f32     %p20, %f151, 0f77F684DF;
  334.         @%p20 bra       BB5_20;
  335.         bra.uni         BB5_21;
  336.  
  337. BB5_20:
  338.         mov.f32         %f192, 0f39000000;
  339.         mul.rn.f32      %f254, %f254, %f192;
  340.  
  341. BB5_21:
  342.         mov.f32         %f193, 0f45800800;
  343.         mul.rn.f32      %f194, %f25, %f193;
  344.         sub.f32         %f195, %f25, %f194;
  345.         add.f32         %f196, %f195, %f194;
  346.         sub.f32         %f197, %f25, %f196;
  347.         mul.rn.f32      %f198, %f254, %f193;
  348.         sub.f32         %f199, %f254, %f198;
  349.         add.f32         %f200, %f199, %f198;
  350.         sub.f32         %f201, %f254, %f200;
  351.         mul.rn.f32      %f202, %f196, %f200;
  352.         mul.rn.f32      %f203, %f25, %f254;
  353.         sub.f32         %f204, %f202, %f203;
  354.         mul.rn.f32      %f205, %f196, %f201;
  355.         add.f32         %f206, %f204, %f205;
  356.         mul.rn.f32      %f207, %f197, %f200;
  357.         add.f32         %f208, %f206, %f207;
  358.         mul.rn.f32      %f209, %f197, %f201;
  359.         add.f32         %f210, %f208, %f209;
  360.         mul.rn.f32      %f211, %f26, %f254;
  361.         add.f32         %f212, %f211, %f210;
  362.         add.f32         %f213, %f203, %f212;
  363.         sub.f32         %f214, %f203, %f213;
  364.         add.f32         %f29, %f214, %f212;
  365.         mov.f32         %f239, %f29;
  366.         mov.f32         %f255, %f213;
  367.         mov.b32          %r15, %f213;
  368.         setp.eq.s32     %p21, %r15, 1118925336;
  369.         @%p21 bra       BB5_22;
  370.         bra.uni         BB5_23;
  371.  
  372. BB5_22:
  373.         add.s32         %r75, %r15, -1;
  374.         mov.b32          %f215, %r75;
  375.         add.f32         %f216, %f29, 0f37000000;
  376.         mov.f32         %f241, %f216;
  377.         mov.f32         %f255, %f215;
  378.  
  379. BB5_23:
  380.         mov.f32         %f224, 0f3FB8AA3B;
  381.         mul.rn.f32      %f218, %f255, %f224;
  382.         // inline asm
  383.         cvt.rzi.f32.f32         %f217, %f218;
  384.         // inline asm
  385.         mul.rn.f32      %f226, %f217, %f182;
  386.         sub.f32         %f227, %f255, %f226;
  387.         mul.rn.f32      %f229, %f217, %f184;
  388.         sub.f32         %f230, %f227, %f229;
  389.         mul.rn.f32      %f220, %f230, %f224;
  390.         // inline asm
  391.         ex2.approx.f32  %f219, %f220;
  392.         // inline asm
  393.         add.f32         %f222, %f217, 0f00000000;
  394.         // inline asm
  395.         ex2.approx.f32  %f221, %f222;
  396.         // inline asm
  397.         mul.rn.f32      %f231, %f219, %f221;
  398.         setp.lt.f32     %p22, %f255, 0fC2D20000;
  399.         selp.f32        %f232, 0f00000000, %f231, %p22;
  400.         setp.gt.f32     %p23, %f255, 0f42D20000;
  401.         selp.f32        %f30, %f18, %f232, %p23;
  402.         setp.eq.f32     %p24, %f30, %f18;
  403.  
  404. BB5_24:
  405.         mov.f64         %fd1, 0d7FF0000000000000;
  406.         mov.pred        %p25, 0;
  407.         @%p25 bra       BB5_38;
  408.  
  409.         mov.f64         %fd2, 0dFFF0000000000000;
  410.         neg.f64         %fd24, %fd1;
  411.         setp.eq.f64     %p26, %fd24, 0d4000000000000000;
  412.         @%p26 bra       BB5_38;
  413.  
  414.         mov.f64         %fd241, 0d4000000000000000;
  415.         // inline asm
  416.         abs.f64         %fd25, %fd241;
  417.         // inline asm
  418.         // inline asm
  419.         {
  420.         .reg    .b32 lo;
  421.         mov.b64         {lo, %r76}, %fd25;
  422.         }
  423.         // inline asm
  424.         // inline asm
  425.         {
  426.         .reg    .b32 hi;
  427.         mov.b64         {%r77, hi}, %fd25;
  428.         }
  429.         // inline asm
  430.         shr.u32         %r78, %r76, 20;
  431.         and.b32         %r109, %r78, 2047;
  432.         setp.eq.s32     %p27, %r109, 0;
  433.         mov.u32         %r107, %r77;
  434.         mov.u32         %r108, %r76;
  435.         @%p27 bra       BB5_27;
  436.         bra.uni         BB5_28;
  437.  
  438. BB5_27:
  439.         mov.f64         %fd31, 0d4350000000000000;
  440.         mul.rn.f64      %fd30, %fd25, %fd31;
  441.         // inline asm
  442.         {
  443.         .reg    .b32 lo;
  444.         mov.b64         {lo, %r79}, %fd30;
  445.         }
  446.         // inline asm
  447.         // inline asm
  448.         {
  449.         .reg    .b32 hi;
  450.         mov.b64         {%r80, hi}, %fd30;
  451.         }
  452.         // inline asm
  453.         shr.u32         %r81, %r79, 20;
  454.         and.b32         %r82, %r81, 2047;
  455.         add.s32         %r109, %r82, -54;
  456.         mov.u32         %r107, %r80;
  457.         mov.u32         %r108, %r79;
  458.  
  459. BB5_28:
  460.         add.s32         %r110, %r109, -1023;
  461.         and.b32         %r85, %r108, -2146435073;
  462.         or.b32          %r84, %r85, 1072693248;
  463.         // inline asm
  464.         mov.b64         %fd32, {%r107, %r84};
  465.         // inline asm
  466.         setp.gt.u32     %p28, %r84, 1073127582;
  467.         mov.f64         %fd240, %fd32;
  468.         @%p28 bra       BB5_29;
  469.         bra.uni         BB5_30;
  470.  
  471. BB5_29:
  472.         // inline asm
  473.         {
  474.         .reg    .b32 hi;
  475.         mov.b64         {%r86, hi}, %fd32;
  476.         }
  477.         // inline asm
  478.         // inline asm
  479.         {
  480.         .reg    .b32 lo;
  481.         mov.b64         {lo, %r87}, %fd32;
  482.         }
  483.         // inline asm
  484.         add.s32         %r89, %r87, -1048576;
  485.         // inline asm
  486.         mov.b64         %fd35, {%r86, %r89};
  487.         // inline asm
  488.         add.s32         %r110, %r109, -1022;
  489.         mov.f64         %fd240, %fd35;
  490.  
  491. BB5_30:
  492.         add.f64         %fd114, %fd240, 0d3FF0000000000000;
  493.         rcp.rn.f64      %fd115, %fd114;
  494.         add.f64         %fd62, %fd240, 0dBFF0000000000000;
  495.         mul.rn.f64      %fd116, %fd62, %fd115;
  496.         add.f64         %fd110, %fd116, %fd116;
  497.         mul.rn.f64      %fd58, %fd110, %fd110;
  498.         mov.f64         %fd37, 0d3EB0F5FF7D2CAFE2;
  499.         mov.f64         %fd39, 0d3ED0F5D241AD3B5A;
  500.         // inline asm
  501.         fma.rn.f64      %fd36, %fd37, %fd58, %fd39;
  502.         // inline asm
  503.         mov.f64         %fd43, 0d3EF3B20A75488A3F;
  504.         // inline asm
  505.         fma.rn.f64      %fd40, %fd36, %fd58, %fd43;
  506.         // inline asm
  507.         mov.f64         %fd47, 0d3F1745CDE4FAECD5;
  508.         // inline asm
  509.         fma.rn.f64      %fd44, %fd40, %fd58, %fd47;
  510.         // inline asm
  511.         mov.f64         %fd51, 0d3F3C71C7258A578B;
  512.         // inline asm
  513.         fma.rn.f64      %fd48, %fd44, %fd58, %fd51;
  514.         // inline asm
  515.         mov.f64         %fd55, 0d3F6249249242B910;
  516.         // inline asm
  517.         fma.rn.f64      %fd52, %fd48, %fd58, %fd55;
  518.         // inline asm
  519.         mov.f64         %fd59, 0d3F89999999999DFB;
  520.         // inline asm
  521.         fma.rn.f64      %fd56, %fd52, %fd58, %fd59;
  522.         // inline asm
  523.         mul.rn.f64      %fd117, %fd56, %fd58;
  524.         sub.f64         %fd118, %fd62, %fd110;
  525.         mul.rn.f64      %fd63, %fd241, %fd118;
  526.         neg.f64         %fd61, %fd110;
  527.         // inline asm
  528.         fma.rn.f64      %fd60, %fd61, %fd62, %fd63;
  529.         // inline asm
  530.         mul.rn.f64      %fd106, %fd115, %fd60;
  531.         mov.f64         %fd119, 0d3FB5555555555555;
  532.         add.f64         %fd120, %fd117, 0d3FB5555555555555;
  533.         sub.f64         %fd121, %fd119, %fd120;
  534.         add.f64         %fd122, %fd121, %fd117;
  535.         add.f64         %fd123, %fd122, 0d0000000000000000;
  536.         add.f64         %fd124, %fd123, 0dBC46A4CB00B9E7B0;
  537.         add.f64         %fd73, %fd120, %fd124;
  538.         sub.f64         %fd125, %fd120, %fd73;
  539.         add.f64         %fd77, %fd125, %fd124;
  540.         mul.rn.f64      %fd126, %fd73, %fd110;
  541.         neg.f64         %fd67, %fd126;
  542.         // inline asm
  543.         fma.rn.f64      %fd64, %fd73, %fd110, %fd67;
  544.         // inline asm
  545.         // inline asm
  546.         fma.rn.f64      %fd68, %fd77, %fd106, %fd64;
  547.         // inline asm
  548.         // inline asm
  549.         fma.rn.f64      %fd72, %fd73, %fd106, %fd68;
  550.         // inline asm
  551.         // inline asm
  552.         fma.rn.f64      %fd76, %fd77, %fd110, %fd72;
  553.         // inline asm
  554.         add.f64         %fd89, %fd126, %fd76;
  555.         sub.f64         %fd127, %fd126, %fd89;
  556.         add.f64         %fd93, %fd127, %fd76;
  557.         mul.rn.f64      %fd128, %fd89, %fd110;
  558.         neg.f64         %fd83, %fd128;
  559.         // inline asm
  560.         fma.rn.f64      %fd80, %fd89, %fd110, %fd83;
  561.         // inline asm
  562.         // inline asm
  563.         fma.rn.f64      %fd84, %fd93, %fd106, %fd80;
  564.         // inline asm
  565.         // inline asm
  566.         fma.rn.f64      %fd88, %fd89, %fd106, %fd84;
  567.         // inline asm
  568.         // inline asm
  569.         fma.rn.f64      %fd92, %fd93, %fd110, %fd88;
  570.         // inline asm
  571.         add.f64         %fd105, %fd128, %fd92;
  572.         sub.f64         %fd129, %fd128, %fd105;
  573.         add.f64         %fd109, %fd129, %fd92;
  574.         mul.rn.f64      %fd130, %fd105, %fd110;
  575.         neg.f64         %fd99, %fd130;
  576.         // inline asm
  577.         fma.rn.f64      %fd96, %fd105, %fd110, %fd99;
  578.         // inline asm
  579.         // inline asm
  580.         fma.rn.f64      %fd100, %fd109, %fd106, %fd96;
  581.         // inline asm
  582.         // inline asm
  583.         fma.rn.f64      %fd104, %fd105, %fd106, %fd100;
  584.         // inline asm
  585.         // inline asm
  586.         fma.rn.f64      %fd108, %fd109, %fd110, %fd104;
  587.         // inline asm
  588.         add.f64         %fd131, %fd130, %fd108;
  589.         sub.f64         %fd132, %fd130, %fd131;
  590.         add.f64         %fd133, %fd132, %fd108;
  591.         add.f64         %fd134, %fd110, %fd131;
  592.         sub.f64         %fd135, %fd110, %fd134;
  593.         add.f64         %fd136, %fd135, %fd131;
  594.         add.f64         %fd137, %fd136, %fd133;
  595.         add.f64         %fd138, %fd137, %fd106;
  596.         add.f64         %fd139, %fd134, %fd138;
  597.         sub.f64         %fd140, %fd134, %fd139;
  598.         add.f64         %fd141, %fd140, %fd138;
  599.         cvt.rn.f64.s32  %fd142, %r110;
  600.         mov.f64         %fd143, 0d3FE62E42FEFA3000;
  601.         mul.rn.f64      %fd144, %fd142, %fd143;
  602.         mov.f64         %fd145, 0d3D53DE6AF278ECE6;
  603.         mul.rn.f64      %fd146, %fd142, %fd145;
  604.         add.f64         %fd147, %fd144, %fd139;
  605.         sub.f64         %fd148, %fd144, %fd147;
  606.         add.f64         %fd149, %fd148, %fd139;
  607.         add.f64         %fd150, %fd149, %fd141;
  608.         add.f64         %fd151, %fd150, %fd146;
  609.         add.f64         %fd7, %fd147, %fd151;
  610.         sub.f64         %fd152, %fd147, %fd7;
  611.         add.f64         %fd8, %fd152, %fd151;
  612.         // inline asm
  613.         abs.f64         %fd112, %fd241;
  614.         // inline asm
  615.         setp.gt.f64     %p29, %fd112, 0d7F0D2A1BE4048F90;
  616.         @%p29 bra       BB5_31;
  617.         bra.uni         BB5_32;
  618.  
  619. BB5_31:
  620.         mov.f64         %fd154, 0d3F20000000000000;
  621.         mov.f64         %fd155, 0d4000000000000000;
  622.         mul.rn.f64      %fd241, %fd155, %fd154;
  623.  
  624. BB5_32:
  625.         mul.rn.f64      %fd165, %fd7, %fd241;
  626.         neg.f64         %fd159, %fd165;
  627.         // inline asm
  628.         fma.rn.f64      %fd156, %fd7, %fd241, %fd159;
  629.         // inline asm
  630.         // inline asm
  631.         fma.rn.f64      %fd160, %fd8, %fd241, %fd156;
  632.         // inline asm
  633.         add.f64         %fd164, %fd165, %fd160;
  634.         // inline asm
  635.         {
  636.         .reg    .b32 lo;
  637.         mov.b64         {lo, %r90}, %fd164;
  638.         }
  639.         // inline asm
  640.         setp.lt.u32     %p30, %r90, 1082535491;
  641.         setp.lt.s32     %p31, %r90, -1064875759;
  642.         or.pred         %p32, %p30, %p31;
  643.         @%p32 bra       BB5_34;
  644.  
  645.         setp.lt.s32     %p33, %r90, 0;
  646.         selp.f64        %fd167, 0d0000000000000000, %fd1, %p33;
  647.         add.f64         %fd168, %fd164, %fd164;
  648.         setp.nan.f64    %p34, %fd164, %fd164;
  649.         selp.f64        %fd243, %fd168, %fd167, %p34;
  650.         bra.uni         BB5_37;
  651.  
  652. BB5_34:
  653.         mov.f64         %fd171, 0d3FF71547652B82FE;
  654.         mul.rn.f64      %fd170, %fd164, %fd171;
  655.         // inline asm
  656.         abs.f64         %fd169, %fd170;
  657.         // inline asm
  658.         setp.gt.f64     %p35, %fd169, 0d4330000000000000;
  659.         mov.f64         %fd242, %fd170;
  660.         @%p35 bra       BB5_36;
  661.  
  662.         add.f64         %fd173, %fd169, 0d3FE0000000000000;
  663.         // inline asm
  664.         cvt.rmi.f64.f64         %fd172, %fd173;
  665.         // inline asm
  666.         setp.lt.f64     %p36, %fd169, 0d3FE0000000000000;
  667.         selp.f64        %fd176, 0d0000000000000000, %fd172, %p36;
  668.         // inline asm
  669.         {
  670.         .reg    .b32 lo;
  671.         mov.b64         {lo, %r91}, %fd170;
  672.         }
  673.         // inline asm
  674.         // inline asm
  675.         {
  676.         .reg    .b32 hi;
  677.         mov.b64         {%r92, hi}, %fd176;
  678.         }
  679.         // inline asm
  680.         // inline asm
  681.         {
  682.         .reg    .b32 lo;
  683.         mov.b64         {lo, %r93}, %fd176;
  684.         }
  685.         // inline asm
  686.         and.b32         %r96, %r91, -2147483648;
  687.         and.b32         %r97, %r93, 2147483647;
  688.         or.b32          %r95, %r97, %r96;
  689.         // inline asm
  690.         mov.b64         %fd177, {%r92, %r95};
  691.         // inline asm
  692.         mov.f64         %fd242, %fd177;
  693.  
  694. BB5_36:
  695.         mov.f64         %fd180, 0dBFE62E42FEFA39EF;
  696.         // inline asm
  697.         fma.rn.f64      %fd178, %fd242, %fd180, %fd164;
  698.         // inline asm
  699.         mov.f64         %fd184, 0dBC7ABC9E3B39803F;
  700.         // inline asm
  701.         fma.rn.f64      %fd182, %fd242, %fd184, %fd178;
  702.         // inline asm
  703.         cvt.rzi.s32.f64         %r100, %fd242;
  704.         add.s32         %r101, %r100, 55;
  705.         setp.lt.s32     %p37, %r100, -1020;
  706.         selp.b32        %r102, %r101, %r100, %p37;
  707.         selp.f64         %fd235, 0d3C90000000000000, 0d4000000000000000, %p37;
  708.         mov.f64         %fd187, 0d3E21F07FCCF58BAD;
  709.         mov.f64         %fd189, 0d3E5AFD81DA6C3BAF;
  710.         // inline asm
  711.         fma.rn.f64      %fd186, %fd187, %fd182, %fd189;
  712.         // inline asm
  713.         mov.f64         %fd193, 0d3E927E55F60F80E6;
  714.         // inline asm
  715.         fma.rn.f64      %fd190, %fd186, %fd182, %fd193;
  716.         // inline asm
  717.         mov.f64         %fd197, 0d3EC71DDA8F02D666;
  718.         // inline asm
  719.         fma.rn.f64      %fd194, %fd190, %fd182, %fd197;
  720.         // inline asm
  721.         mov.f64         %fd201, 0d3EFA01A013B894E0;
  722.         // inline asm
  723.         fma.rn.f64      %fd198, %fd194, %fd182, %fd201;
  724.         // inline asm
  725.         mov.f64         %fd205, 0d3F2A01A01D3AF788;
  726.         // inline asm
  727.         fma.rn.f64      %fd202, %fd198, %fd182, %fd205;
  728.         // inline asm
  729.         mov.f64         %fd209, 0d3F56C16C16C3A1EC;
  730.         // inline asm
  731.         fma.rn.f64      %fd206, %fd202, %fd182, %fd209;
  732.         // inline asm
  733.         mov.f64         %fd213, 0d3F81111111109161;
  734.         // inline asm
  735.         fma.rn.f64      %fd210, %fd206, %fd182, %fd213;
  736.         // inline asm
  737.         mov.f64         %fd217, 0d3FA55555555554C1;
  738.         // inline asm
  739.         fma.rn.f64      %fd214, %fd210, %fd182, %fd217;
  740.         // inline asm
  741.         mov.f64         %fd221, 0d3FC555555555556F;
  742.         // inline asm
  743.         fma.rn.f64      %fd218, %fd214, %fd182, %fd221;
  744.         // inline asm
  745.         mov.f64         %fd225, 0d3FE0000000000000;
  746.         // inline asm
  747.         fma.rn.f64      %fd222, %fd218, %fd182, %fd225;
  748.         // inline asm
  749.         mul.rn.f64      %fd227, %fd222, %fd182;
  750.         // inline asm
  751.         fma.rn.f64      %fd226, %fd227, %fd182, %fd182;
  752.         // inline asm
  753.         shl.b32         %r103, %r102, 20;
  754.         add.s32         %r99, %r103, 1071644672;
  755.         mov.u32         %r98, 0;
  756.         // inline asm
  757.         mov.b64         %fd230, {%r98, %r99};
  758.         // inline asm
  759.         // inline asm
  760.         fma.rn.f64      %fd231, %fd226, %fd230, %fd230;
  761.         // inline asm
  762.         mul.rn.f64      %fd243, %fd231, %fd235;
  763.  
  764. BB5_37:
  765.         setp.eq.f64     %p38, %fd243, %fd2;
  766.         setp.eq.f64     %p39, %fd243, %fd1;
  767.         or.pred         %p40, %p39, %p38;
  768.  
  769. BB5_38:
  770.         ret;
  771. }
clone this paste RAW Paste Data