Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Jul 17th, 2012  |  syntax: ASM (NASM)  |  size: 23.21 KB  |  views: 11  |  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<285>;
  24.         .reg .f64       %fd<244>;
  25.         .reg .pred      %p<58>;
  26.         .reg .s32       %r<137>;
  27.  
  28.  
  29.         ld.param.u32    %r1, [butterfC_param_6];
  30.         // inline asm
  31.         mov.u32         %r39, %envreg3;
  32.         // inline asm
  33.         // inline asm
  34.         mov.u32         %r40, %ntid.x;
  35.         // inline asm
  36.         // inline asm
  37.         mov.u32         %r41, %ctaid.x;
  38.         // inline asm
  39.         // inline asm
  40.         mov.u32         %r42, %tid.x;
  41.         // inline asm
  42.         add.s32         %r51, %r42, %r39;
  43.         mad.lo.s32      %r3, %r41, %r40, %r51;
  44.         // inline asm
  45.         mov.u32         %r43, %envreg4;
  46.         // inline asm
  47.         // inline asm
  48.         mov.u32         %r44, %ntid.y;
  49.         // inline asm
  50.         // inline asm
  51.         mov.u32         %r45, %ctaid.y;
  52.         // inline asm
  53.         // inline asm
  54.         mov.u32         %r46, %tid.y;
  55.         // inline asm
  56.         add.s32         %r52, %r46, %r43;
  57.         mad.lo.s32      %r4, %r45, %r44, %r52;
  58.         // inline asm
  59.         mov.u32         %r47, %envreg5;
  60.         // inline asm
  61.         // inline asm
  62.         mov.u32         %r48, %ntid.z;
  63.         // inline asm
  64.         // inline asm
  65.         mov.u32         %r49, %ctaid.z;
  66.         // inline asm
  67.         // inline asm
  68.         mov.u32         %r50, %tid.z;
  69.         // inline asm
  70.         add.s32         %r53, %r50, %r47;
  71.         mad.lo.s32      %r5, %r49, %r48, %r53;
  72.         mov.f32         %f44, 0f40800000;
  73.         // inline asm
  74.         abs.f32         %f43, %f44;
  75.         // inline asm
  76.         cvt.rn.f32.u32  %f275, %r1;
  77.         setp.eq.f32     %p5, %f275, 0f00000000;
  78.         @%p5 bra        BB5_22;
  79.  
  80.         setp.nan.f32    %p6, %f275, %f275;
  81.         @%p6 bra        BB5_21;
  82.  
  83.         mov.f32         %f3, 0f7F800000;
  84.         setp.eq.f32     %p7, %f275, 0f7F800000;
  85.         setp.eq.f32     %p8, %f275, 0fFF800000;
  86.         or.pred         %p9, %p7, %p8;
  87.         @%p9 bra        BB5_18;
  88.  
  89.         mov.f32         %f49, 0f3F000000;
  90.         mul.rn.f32      %f46, %f49, %f275;
  91.         // inline asm
  92.         cvt.rmi.f32.f32         %f45, %f46;
  93.         // inline asm
  94.         // inline asm
  95.         cvt.rzi.f32.f32         %f47, %f275;
  96.         // inline asm
  97.         setp.eq.f32     %p12, %f43, 0f00000000;
  98.         @%p12 bra       BB5_15;
  99.  
  100.         // inline asm
  101.         abs.f32         %f53, %f44;
  102.         // inline asm
  103.         mov.b32          %r6, %f53;
  104.         shr.u32         %r54, %r6, 23;
  105.         and.b32         %r55, %r54, 255;
  106.         add.s32         %r130, %r55, -127;
  107.         setp.eq.s32     %p13, %r55, 0;
  108.         mov.f32         %f273, %f53;
  109.         @%p13 bra       BB5_5;
  110.         bra.uni         BB5_6;
  111.  
  112. BB5_5:
  113.         and.b32         %r56, %r6, -2139095041;
  114.         or.b32          %r57, %r56, 1065353216;
  115.         mov.b32          %f55, %r57;
  116.         add.f32         %f56, %f55, 0fBF800000;
  117.         mov.b32          %r58, %f56;
  118.         shr.u32         %r59, %r58, 23;
  119.         and.b32         %r60, %r59, 255;
  120.         add.s32         %r130, %r60, -253;
  121.         and.b32         %r61, %r58, -2139095041;
  122.         or.b32          %r62, %r61, 1065353216;
  123.         mov.b32          %f273, %r62;
  124.  
  125. BB5_6:
  126.         mov.b32          %r63, %f273;
  127.         and.b32         %r64, %r63, -2139095041;
  128.         or.b32          %r65, %r64, 1065353216;
  129.         mov.b32          %f274, %r65;
  130.         setp.gt.f32     %p14, %f274, 0f3FB504F3;
  131.         @%p14 bra       BB5_7;
  132.         bra.uni         BB5_8;
  133.  
  134. BB5_7:
  135.         mul.rn.f32      %f274, %f274, %f49;
  136.         add.s32         %r130, %r130, 1;
  137.  
  138. BB5_8:
  139.         add.f32         %f66, %f274, 0f3F800000;
  140.         rcp.approx.f32  %f60, %f66;
  141.         add.f32         %f59, %f274, 0fBF800000;
  142.         // inline asm
  143.         mul.rz.f32      %f58, %f59, %f60;
  144.         // inline asm
  145.         mov.f32         %f67, 0f40000000;
  146.         mul.rn.f32      %f68, %f67, %f58;
  147.         mul.rn.f32      %f69, %f68, %f68;
  148.         mov.f32         %f70, 0f3B18F0FE;
  149.         mul.rn.f32      %f71, %f70, %f69;
  150.         add.f32         %f72, %f71, 0f3C4CAF63;
  151.         mul.rn.f32      %f73, %f72, %f69;
  152.         add.f32         %f74, %f73, 0f3DAAAABD;
  153.         mul.rn.f32      %f75, %f74, %f69;
  154.         mul.rn.f32      %f63, %f75, %f68;
  155.         mov.b32          %r66, %f68;
  156.         and.b32         %r67, %r66, -4096;
  157.         mov.b32          %f76, %r67;
  158.         mov.b32          %r68, %f59;
  159.         and.b32         %r69, %r68, -4096;
  160.         mov.b32          %f77, %r69;
  161.         sub.f32         %f78, %f59, %f76;
  162.         mul.rn.f32      %f79, %f67, %f78;
  163.         sub.f32         %f80, %f59, %f77;
  164.         mul.rn.f32      %f81, %f76, %f77;
  165.         sub.f32         %f82, %f79, %f81;
  166.         mul.rn.f32      %f83, %f76, %f80;
  167.         sub.f32         %f84, %f82, %f83;
  168.         mul.rn.f32      %f85, %f60, %f84;
  169.         add.f32         %f86, %f76, %f85;
  170.         sub.f32         %f87, %f86, %f76;
  171.         sub.f32         %f88, %f85, %f87;
  172.         add.f32         %f89, %f86, %f63;
  173.         sub.f32         %f62, %f86, %f89;
  174.         // inline asm
  175.         add.rz.f32      %f61, %f62, %f63;
  176.         // inline asm
  177.         add.f32         %f90, %f61, %f88;
  178.         add.f32         %f91, %f89, %f90;
  179.         sub.f32         %f92, %f89, %f91;
  180.         add.f32         %f93, %f92, %f90;
  181.         cvt.rn.f32.s32  %f94, %r130;
  182.         mov.f32         %f95, 0f3F317200;
  183.         mul.rn.f32      %f96, %f94, %f95;
  184.         mov.f32         %f97, 0f35BFBE8E;
  185.         mul.rn.f32      %f98, %f94, %f97;
  186.         add.f32         %f99, %f96, %f91;
  187.         sub.f32         %f100, %f96, %f99;
  188.         add.f32         %f101, %f100, %f91;
  189.         add.f32         %f102, %f101, %f93;
  190.         add.f32         %f103, %f102, %f98;
  191.         add.f32         %f10, %f99, %f103;
  192.         sub.f32         %f104, %f99, %f10;
  193.         add.f32         %f11, %f104, %f103;
  194.         // inline asm
  195.         abs.f32         %f64, %f275;
  196.         // inline asm
  197.         setp.gt.f32     %p15, %f64, 0f77F684DF;
  198.         @%p15 bra       BB5_9;
  199.         bra.uni         BB5_10;
  200.  
  201. BB5_9:
  202.         mov.f32         %f105, 0f39000000;
  203.         mul.rn.f32      %f275, %f275, %f105;
  204.  
  205. BB5_10:
  206.         mov.f32         %f106, 0f45800800;
  207.         mul.rn.f32      %f107, %f10, %f106;
  208.         sub.f32         %f108, %f10, %f107;
  209.         add.f32         %f109, %f108, %f107;
  210.         sub.f32         %f110, %f10, %f109;
  211.         mul.rn.f32      %f111, %f275, %f106;
  212.         sub.f32         %f112, %f275, %f111;
  213.         add.f32         %f113, %f112, %f111;
  214.         sub.f32         %f114, %f275, %f113;
  215.         mul.rn.f32      %f115, %f109, %f113;
  216.         mul.rn.f32      %f116, %f10, %f275;
  217.         sub.f32         %f117, %f115, %f116;
  218.         mul.rn.f32      %f118, %f109, %f114;
  219.         add.f32         %f119, %f117, %f118;
  220.         mul.rn.f32      %f120, %f110, %f113;
  221.         add.f32         %f121, %f119, %f120;
  222.         mul.rn.f32      %f122, %f110, %f114;
  223.         add.f32         %f123, %f121, %f122;
  224.         mul.rn.f32      %f124, %f11, %f275;
  225.         add.f32         %f125, %f124, %f123;
  226.         add.f32         %f126, %f116, %f125;
  227.         sub.f32         %f127, %f116, %f126;
  228.         add.f32         %f14, %f127, %f125;
  229.         mov.f32         %f283, %f14;
  230.         mov.f32         %f284, %f126;
  231.         mov.b32          %r12, %f126;
  232.         setp.eq.s32     %p16, %r12, 1118925336;
  233.         @%p16 bra       BB5_11;
  234.         bra.uni         BB5_12;
  235.  
  236. BB5_11:
  237.         add.s32         %r70, %r12, -1;
  238.         mov.b32          %f128, %r70;
  239.         add.f32         %f129, %f14, 0f37000000;
  240.         mov.f32         %f283, %f129;
  241.         mov.f32         %f284, %f128;
  242.  
  243. BB5_12:
  244.         mov.f32         %f137, 0f3FB8AA3B;
  245.         mul.rn.f32      %f131, %f284, %f137;
  246.         // inline asm
  247.         cvt.rzi.f32.f32         %f130, %f131;
  248.         // inline asm
  249.         mul.rn.f32      %f139, %f130, %f95;
  250.         sub.f32         %f140, %f284, %f139;
  251.         mul.rn.f32      %f142, %f130, %f97;
  252.         sub.f32         %f143, %f140, %f142;
  253.         mul.rn.f32      %f133, %f143, %f137;
  254.         // inline asm
  255.         ex2.approx.f32  %f132, %f133;
  256.         // inline asm
  257.         add.f32         %f135, %f130, 0f00000000;
  258.         // inline asm
  259.         ex2.approx.f32  %f134, %f135;
  260.         // inline asm
  261.         mul.rn.f32      %f144, %f132, %f134;
  262.         setp.lt.f32     %p17, %f284, 0fC2D20000;
  263.         selp.f32        %f145, 0f00000000, %f144, %p17;
  264.         setp.gt.f32     %p18, %f284, 0f42D20000;
  265.         selp.f32        %f15, %f3, %f145, %p18;
  266.         setp.neu.f32    %p19, %f15, %f3;
  267.         @%p19 bra       BB5_14;
  268.  
  269.         mov.f32         %f276, %f15;
  270.         bra.uni         BB5_23;
  271.  
  272. BB5_14:
  273.         // inline asm
  274.         mad.f32         %f146, %f15, %f283, %f15;
  275.         // inline asm
  276.         mov.f32         %f276, %f146;
  277.         bra.uni         BB5_23;
  278.  
  279. BB5_15:
  280.         setp.lt.f32     %p20, %f275, 0f00000000;
  281.         @%p20 bra       BB5_17;
  282.  
  283.         mov.f32         %f276, 0f00000000;
  284.         bra.uni         BB5_23;
  285.  
  286. BB5_17:
  287.         mov.f32         %f276, %f3;
  288.         bra.uni         BB5_23;
  289.  
  290. BB5_18:
  291.         setp.lt.f32     %p21, %f43, 0f3F800000;
  292.         mov.b32          %r71, %f275;
  293.         setp.lt.s32     %p2, %r71, 0;
  294.         @%p21 bra       BB5_20;
  295.  
  296.         selp.f32        %f276, 0f00000000, %f3, %p2;
  297.         bra.uni         BB5_23;
  298.  
  299. BB5_20:
  300.         selp.f32        %f276, %f3, 0f00000000, %p2;
  301.         bra.uni         BB5_23;
  302.  
  303. BB5_21:
  304.         add.f32         %f276, %f275, 0f40800000;
  305.         bra.uni         BB5_23;
  306.  
  307. BB5_22:
  308.         mov.f32         %f276, 0f3F800000;
  309.  
  310. BB5_23:
  311.         cvt.rzi.s32.f32         %r13, %f276;
  312.         ld.param.u32    %r126, [butterfC_param_6];
  313.         add.s32         %r72, %r126, -1;
  314.         cvt.rn.f32.u32  %f279, %r72;
  315.         // inline asm
  316.         abs.f32         %f152, %f44;
  317.         // inline asm
  318.         setp.eq.f32     %p22, %f279, 0f00000000;
  319.         @%p22 bra       BB5_45;
  320.  
  321.         setp.nan.f32    %p23, %f279, %f279;
  322.         @%p23 bra       BB5_44;
  323.  
  324.         mov.f32         %f24, 0f7F800000;
  325.         setp.eq.f32     %p24, %f279, 0f7F800000;
  326.         setp.eq.f32     %p25, %f279, 0fFF800000;
  327.         or.pred         %p26, %p24, %p25;
  328.         @%p26 bra       BB5_41;
  329.  
  330.         mov.f32         %f158, 0f3F000000;
  331.         mul.rn.f32      %f155, %f158, %f279;
  332.         // inline asm
  333.         cvt.rmi.f32.f32         %f154, %f155;
  334.         // inline asm
  335.         // inline asm
  336.         cvt.rzi.f32.f32         %f156, %f279;
  337.         // inline asm
  338.         setp.eq.f32     %p29, %f152, 0f00000000;
  339.         @%p29 bra       BB5_38;
  340.  
  341.         // inline asm
  342.         abs.f32         %f162, %f44;
  343.         // inline asm
  344.         mov.b32          %r14, %f162;
  345.         shr.u32         %r73, %r14, 23;
  346.         and.b32         %r74, %r73, 255;
  347.         add.s32         %r131, %r74, -127;
  348.         setp.eq.s32     %p30, %r74, 0;
  349.         mov.f32         %f277, %f162;
  350.         @%p30 bra       BB5_28;
  351.         bra.uni         BB5_29;
  352.  
  353. BB5_28:
  354.         and.b32         %r75, %r14, -2139095041;
  355.         or.b32          %r76, %r75, 1065353216;
  356.         mov.b32          %f164, %r76;
  357.         add.f32         %f165, %f164, 0fBF800000;
  358.         mov.b32          %r77, %f165;
  359.         shr.u32         %r78, %r77, 23;
  360.         and.b32         %r79, %r78, 255;
  361.         add.s32         %r131, %r79, -253;
  362.         and.b32         %r80, %r77, -2139095041;
  363.         or.b32          %r81, %r80, 1065353216;
  364.         mov.b32          %f277, %r81;
  365.  
  366. BB5_29:
  367.         mov.b32          %r82, %f277;
  368.         and.b32         %r83, %r82, -2139095041;
  369.         or.b32          %r84, %r83, 1065353216;
  370.         mov.b32          %f278, %r84;
  371.         setp.gt.f32     %p31, %f278, 0f3FB504F3;
  372.         @%p31 bra       BB5_30;
  373.         bra.uni         BB5_31;
  374.  
  375. BB5_30:
  376.         mul.rn.f32      %f278, %f278, %f158;
  377.         add.s32         %r131, %r131, 1;
  378.  
  379. BB5_31:
  380.         add.f32         %f175, %f278, 0f3F800000;
  381.         rcp.approx.f32  %f169, %f175;
  382.         add.f32         %f168, %f278, 0fBF800000;
  383.         // inline asm
  384.         mul.rz.f32      %f167, %f168, %f169;
  385.         // inline asm
  386.         mov.f32         %f176, 0f40000000;
  387.         mul.rn.f32      %f177, %f176, %f167;
  388.         mul.rn.f32      %f178, %f177, %f177;
  389.         mov.f32         %f179, 0f3B18F0FE;
  390.         mul.rn.f32      %f180, %f179, %f178;
  391.         add.f32         %f181, %f180, 0f3C4CAF63;
  392.         mul.rn.f32      %f182, %f181, %f178;
  393.         add.f32         %f183, %f182, 0f3DAAAABD;
  394.         mul.rn.f32      %f184, %f183, %f178;
  395.         mul.rn.f32      %f172, %f184, %f177;
  396.         mov.b32          %r85, %f177;
  397.         and.b32         %r86, %r85, -4096;
  398.         mov.b32          %f185, %r86;
  399.         mov.b32          %r87, %f168;
  400.         and.b32         %r88, %r87, -4096;
  401.         mov.b32          %f186, %r88;
  402.         sub.f32         %f187, %f168, %f185;
  403.         mul.rn.f32      %f188, %f176, %f187;
  404.         sub.f32         %f189, %f168, %f186;
  405.         mul.rn.f32      %f190, %f185, %f186;
  406.         sub.f32         %f191, %f188, %f190;
  407.         mul.rn.f32      %f192, %f185, %f189;
  408.         sub.f32         %f193, %f191, %f192;
  409.         mul.rn.f32      %f194, %f169, %f193;
  410.         add.f32         %f195, %f185, %f194;
  411.         sub.f32         %f196, %f195, %f185;
  412.         sub.f32         %f197, %f194, %f196;
  413.         add.f32         %f198, %f195, %f172;
  414.         sub.f32         %f171, %f195, %f198;
  415.         // inline asm
  416.         add.rz.f32      %f170, %f171, %f172;
  417.         // inline asm
  418.         add.f32         %f199, %f170, %f197;
  419.         add.f32         %f200, %f198, %f199;
  420.         sub.f32         %f201, %f198, %f200;
  421.         add.f32         %f202, %f201, %f199;
  422.         cvt.rn.f32.s32  %f203, %r131;
  423.         mov.f32         %f204, 0f3F317200;
  424.         mul.rn.f32      %f205, %f203, %f204;
  425.         mov.f32         %f206, 0f35BFBE8E;
  426.         mul.rn.f32      %f207, %f203, %f206;
  427.         add.f32         %f208, %f205, %f200;
  428.         sub.f32         %f209, %f205, %f208;
  429.         add.f32         %f210, %f209, %f200;
  430.         add.f32         %f211, %f210, %f202;
  431.         add.f32         %f212, %f211, %f207;
  432.         add.f32         %f31, %f208, %f212;
  433.         sub.f32         %f213, %f208, %f31;
  434.         add.f32         %f32, %f213, %f212;
  435.         // inline asm
  436.         abs.f32         %f173, %f279;
  437.         // inline asm
  438.         setp.gt.f32     %p32, %f173, 0f77F684DF;
  439.         @%p32 bra       BB5_32;
  440.         bra.uni         BB5_33;
  441.  
  442. BB5_32:
  443.         mov.f32         %f214, 0f39000000;
  444.         mul.rn.f32      %f279, %f279, %f214;
  445.  
  446. BB5_33:
  447.         mov.f32         %f215, 0f45800800;
  448.         mul.rn.f32      %f216, %f31, %f215;
  449.         sub.f32         %f217, %f31, %f216;
  450.         add.f32         %f218, %f217, %f216;
  451.         sub.f32         %f219, %f31, %f218;
  452.         mul.rn.f32      %f220, %f279, %f215;
  453.         sub.f32         %f221, %f279, %f220;
  454.         add.f32         %f222, %f221, %f220;
  455.         sub.f32         %f223, %f279, %f222;
  456.         mul.rn.f32      %f224, %f218, %f222;
  457.         mul.rn.f32      %f225, %f31, %f279;
  458.         sub.f32         %f226, %f224, %f225;
  459.         mul.rn.f32      %f227, %f218, %f223;
  460.         add.f32         %f228, %f226, %f227;
  461.         mul.rn.f32      %f229, %f219, %f222;
  462.         add.f32         %f230, %f228, %f229;
  463.         mul.rn.f32      %f231, %f219, %f223;
  464.         add.f32         %f232, %f230, %f231;
  465.         mul.rn.f32      %f233, %f32, %f279;
  466.         add.f32         %f234, %f233, %f232;
  467.         add.f32         %f235, %f225, %f234;
  468.         sub.f32         %f236, %f225, %f235;
  469.         add.f32         %f35, %f236, %f234;
  470.         mov.f32         %f281, %f35;
  471.         mov.f32         %f282, %f235;
  472.         mov.b32          %r20, %f235;
  473.         setp.eq.s32     %p33, %r20, 1118925336;
  474.         @%p33 bra       BB5_34;
  475.         bra.uni         BB5_35;
  476.  
  477. BB5_34:
  478.         add.s32         %r89, %r20, -1;
  479.         mov.b32          %f237, %r89;
  480.         add.f32         %f238, %f35, 0f37000000;
  481.         mov.f32         %f281, %f238;
  482.         mov.f32         %f282, %f237;
  483.  
  484. BB5_35:
  485.         mov.f32         %f246, 0f3FB8AA3B;
  486.         mul.rn.f32      %f240, %f282, %f246;
  487.         // inline asm
  488.         cvt.rzi.f32.f32         %f239, %f240;
  489.         // inline asm
  490.         mul.rn.f32      %f248, %f239, %f204;
  491.         sub.f32         %f249, %f282, %f248;
  492.         mul.rn.f32      %f251, %f239, %f206;
  493.         sub.f32         %f252, %f249, %f251;
  494.         mul.rn.f32      %f242, %f252, %f246;
  495.         // inline asm
  496.         ex2.approx.f32  %f241, %f242;
  497.         // inline asm
  498.         add.f32         %f244, %f239, 0f00000000;
  499.         // inline asm
  500.         ex2.approx.f32  %f243, %f244;
  501.         // inline asm
  502.         mul.rn.f32      %f253, %f241, %f243;
  503.         setp.lt.f32     %p34, %f282, 0fC2D20000;
  504.         selp.f32        %f254, 0f00000000, %f253, %p34;
  505.         setp.gt.f32     %p35, %f282, 0f42D20000;
  506.         selp.f32        %f36, %f24, %f254, %p35;
  507.         setp.neu.f32    %p36, %f36, %f24;
  508.         @%p36 bra       BB5_37;
  509.  
  510.         mov.f32         %f280, %f36;
  511.         bra.uni         BB5_46;
  512.  
  513. BB5_37:
  514.         // inline asm
  515.         mad.f32         %f255, %f36, %f281, %f36;
  516.         // inline asm
  517.         mov.f32         %f280, %f255;
  518.         bra.uni         BB5_46;
  519.  
  520. BB5_38:
  521.         setp.lt.f32     %p37, %f279, 0f00000000;
  522.         @%p37 bra       BB5_40;
  523.  
  524.         mov.f32         %f280, 0f00000000;
  525.         bra.uni         BB5_46;
  526.  
  527. BB5_40:
  528.         mov.f32         %f280, %f24;
  529.         bra.uni         BB5_46;
  530.  
  531. BB5_41:
  532.         setp.lt.f32     %p38, %f152, 0f3F800000;
  533.         mov.b32          %r90, %f279;
  534.         setp.lt.s32     %p4, %r90, 0;
  535.         @%p38 bra       BB5_43;
  536.  
  537.         selp.f32        %f280, 0f00000000, %f24, %p4;
  538.         bra.uni         BB5_46;
  539.  
  540. BB5_43:
  541.         selp.f32        %f280, %f24, 0f00000000, %p4;
  542.         bra.uni         BB5_46;
  543.  
  544. BB5_44:
  545.         add.f32         %f280, %f279, 0f40800000;
  546.         bra.uni         BB5_46;
  547.  
  548. BB5_45:
  549.         mov.f32         %f280, 0f3F800000;
  550.  
  551. BB5_46:
  552.         cvt.rzi.s32.f32         %r21, %f280;
  553.         ld.param.u32    %r129, [butterfC_param_8];
  554.         setp.eq.s32     %p39, %r129, 1;
  555.         @%p39 bra       BB5_51;
  556.  
  557.         ld.param.u32    %r128, [butterfC_param_8];
  558.         setp.eq.s32     %p40, %r128, 2;
  559.         @%p40 bra       BB5_50;
  560.  
  561.         ld.param.u32    %r127, [butterfC_param_8];
  562.         setp.ne.s32     %p41, %r127, 3;
  563.         @%p41 bra       BB5_52;
  564.  
  565.         div.s32         %r91, %r5, %r21;
  566.         rem.s32         %r92, %r5, %r21;
  567.         mad.lo.s32      %r132, %r91, %r13, %r92;
  568.         bra.uni         BB5_52;
  569.  
  570. BB5_50:
  571.         div.s32         %r93, %r4, %r21;
  572.         rem.s32         %r94, %r4, %r21;
  573.         mad.lo.s32      %r132, %r93, %r13, %r94;
  574.         bra.uni         BB5_52;
  575.  
  576. BB5_51:
  577.         div.s32         %r95, %r3, %r21;
  578.         rem.s32         %r96, %r3, %r21;
  579.         mad.lo.s32      %r132, %r95, %r13, %r96;
  580.  
  581. BB5_52:
  582.         mov.f64         %fd1, 0d7FF0000000000000;
  583.         setp.eq.s32     %p42, %r132, 0;
  584.         @%p42 bra       BB5_66;
  585.  
  586.         mov.f64         %fd2, 0dFFF0000000000000;
  587.         neg.f64         %fd24, %fd1;
  588.         setp.eq.f64     %p43, %fd24, 0d4000000000000000;
  589.         @%p43 bra       BB5_66;
  590.  
  591.         mov.f64         %fd241, 0d4000000000000000;
  592.         // inline asm
  593.         abs.f64         %fd25, %fd241;
  594.         // inline asm
  595.         // inline asm
  596.         {
  597.         .reg    .b32 lo;
  598.         mov.b64         {lo, %r98}, %fd25;
  599.         }
  600.         // inline asm
  601.         // inline asm
  602.         {
  603.         .reg    .b32 hi;
  604.         mov.b64         {%r99, hi}, %fd25;
  605.         }
  606.         // inline asm
  607.         shr.u32         %r100, %r98, 20;
  608.         and.b32         %r135, %r100, 2047;
  609.         setp.eq.s32     %p44, %r135, 0;
  610.         mov.u32         %r133, %r99;
  611.         mov.u32         %r134, %r98;
  612.         @%p44 bra       BB5_55;
  613.         bra.uni         BB5_56;
  614.  
  615. BB5_55:
  616.         mov.f64         %fd31, 0d4350000000000000;
  617.         mul.rn.f64      %fd30, %fd25, %fd31;
  618.         // inline asm
  619.         {
  620.         .reg    .b32 lo;
  621.         mov.b64         {lo, %r101}, %fd30;
  622.         }
  623.         // inline asm
  624.         // inline asm
  625.         {
  626.         .reg    .b32 hi;
  627.         mov.b64         {%r102, hi}, %fd30;
  628.         }
  629.         // inline asm
  630.         shr.u32         %r103, %r101, 20;
  631.         and.b32         %r104, %r103, 2047;
  632.         add.s32         %r135, %r104, -54;
  633.         mov.u32         %r133, %r102;
  634.         mov.u32         %r134, %r101;
  635.  
  636. BB5_56:
  637.         add.s32         %r136, %r135, -1023;
  638.         and.b32         %r107, %r134, -2146435073;
  639.         or.b32          %r106, %r107, 1072693248;
  640.         // inline asm
  641.         mov.b64         %fd32, {%r133, %r106};
  642.         // inline asm
  643.         setp.gt.u32     %p45, %r106, 1073127582;
  644.         mov.f64         %fd240, %fd32;
  645.         @%p45 bra       BB5_57;
  646.         bra.uni         BB5_58;
  647.  
  648. BB5_57:
  649.         // inline asm
  650.         {
  651.         .reg    .b32 hi;
  652.         mov.b64         {%r108, hi}, %fd32;
  653.         }
  654.         // inline asm
  655.         // inline asm
  656.         {
  657.         .reg    .b32 lo;
  658.         mov.b64         {lo, %r109}, %fd32;
  659.         }
  660.         // inline asm
  661.         add.s32         %r111, %r109, -1048576;
  662.         // inline asm
  663.         mov.b64         %fd35, {%r108, %r111};
  664.         // inline asm
  665.         add.s32         %r136, %r135, -1022;
  666.         mov.f64         %fd240, %fd35;
  667.  
  668. BB5_58:
  669.         add.f64         %fd114, %fd240, 0d3FF0000000000000;
  670.         rcp.rn.f64      %fd115, %fd114;
  671.         add.f64         %fd62, %fd240, 0dBFF0000000000000;
  672.         mul.rn.f64      %fd116, %fd62, %fd115;
  673.         add.f64         %fd110, %fd116, %fd116;
  674.         mul.rn.f64      %fd58, %fd110, %fd110;
  675.         mov.f64         %fd37, 0d3EB0F5FF7D2CAFE2;
  676.         mov.f64         %fd39, 0d3ED0F5D241AD3B5A;
  677.         // inline asm
  678.         fma.rn.f64      %fd36, %fd37, %fd58, %fd39;
  679.         // inline asm
  680.         mov.f64         %fd43, 0d3EF3B20A75488A3F;
  681.         // inline asm
  682.         fma.rn.f64      %fd40, %fd36, %fd58, %fd43;
  683.         // inline asm
  684.         mov.f64         %fd47, 0d3F1745CDE4FAECD5;
  685.         // inline asm
  686.         fma.rn.f64      %fd44, %fd40, %fd58, %fd47;
  687.         // inline asm
  688.         mov.f64         %fd51, 0d3F3C71C7258A578B;
  689.         // inline asm
  690.         fma.rn.f64      %fd48, %fd44, %fd58, %fd51;
  691.         // inline asm
  692.         mov.f64         %fd55, 0d3F6249249242B910;
  693.         // inline asm
  694.         fma.rn.f64      %fd52, %fd48, %fd58, %fd55;
  695.         // inline asm
  696.         mov.f64         %fd59, 0d3F89999999999DFB;
  697.         // inline asm
  698.         fma.rn.f64      %fd56, %fd52, %fd58, %fd59;
  699.         // inline asm
  700.         mul.rn.f64      %fd117, %fd56, %fd58;
  701.         sub.f64         %fd118, %fd62, %fd110;
  702.         mul.rn.f64      %fd63, %fd241, %fd118;
  703.         neg.f64         %fd61, %fd110;
  704.         // inline asm
  705.         fma.rn.f64      %fd60, %fd61, %fd62, %fd63;
  706.         // inline asm
  707.         mul.rn.f64      %fd106, %fd115, %fd60;
  708.         mov.f64         %fd119, 0d3FB5555555555555;
  709.         add.f64         %fd120, %fd117, 0d3FB5555555555555;
  710.         sub.f64         %fd121, %fd119, %fd120;
  711.         add.f64         %fd122, %fd121, %fd117;
  712.         add.f64         %fd123, %fd122, 0d0000000000000000;
  713.         add.f64         %fd124, %fd123, 0dBC46A4CB00B9E7B0;
  714.         add.f64         %fd73, %fd120, %fd124;
  715.         sub.f64         %fd125, %fd120, %fd73;
  716.         add.f64         %fd77, %fd125, %fd124;
  717.         mul.rn.f64      %fd126, %fd73, %fd110;
  718.         neg.f64         %fd67, %fd126;
  719.         // inline asm
  720.         fma.rn.f64      %fd64, %fd73, %fd110, %fd67;
  721.         // inline asm
  722.         // inline asm
  723.         fma.rn.f64      %fd68, %fd77, %fd106, %fd64;
  724.         // inline asm
  725.         // inline asm
  726.         fma.rn.f64      %fd72, %fd73, %fd106, %fd68;
  727.         // inline asm
  728.         // inline asm
  729.         fma.rn.f64      %fd76, %fd77, %fd110, %fd72;
  730.         // inline asm
  731.         add.f64         %fd89, %fd126, %fd76;
  732.         sub.f64         %fd127, %fd126, %fd89;
  733.         add.f64         %fd93, %fd127, %fd76;
  734.         mul.rn.f64      %fd128, %fd89, %fd110;
  735.         neg.f64         %fd83, %fd128;
  736.         // inline asm
  737.         fma.rn.f64      %fd80, %fd89, %fd110, %fd83;
  738.         // inline asm
  739.         // inline asm
  740.         fma.rn.f64      %fd84, %fd93, %fd106, %fd80;
  741.         // inline asm
  742.         // inline asm
  743.         fma.rn.f64      %fd88, %fd89, %fd106, %fd84;
  744.         // inline asm
  745.         // inline asm
  746.         fma.rn.f64      %fd92, %fd93, %fd110, %fd88;
  747.         // inline asm
  748.         add.f64         %fd105, %fd128, %fd92;
  749.         sub.f64         %fd129, %fd128, %fd105;
  750.         add.f64         %fd109, %fd129, %fd92;
  751.         mul.rn.f64      %fd130, %fd105, %fd110;
  752.         neg.f64         %fd99, %fd130;
  753.         // inline asm
  754.         fma.rn.f64      %fd96, %fd105, %fd110, %fd99;
  755.         // inline asm
  756.         // inline asm
  757.         fma.rn.f64      %fd100, %fd109, %fd106, %fd96;
  758.         // inline asm
  759.         // inline asm
  760.         fma.rn.f64      %fd104, %fd105, %fd106, %fd100;
  761.         // inline asm
  762.         // inline asm
  763.         fma.rn.f64      %fd108, %fd109, %fd110, %fd104;
  764.         // inline asm
  765.         add.f64         %fd131, %fd130, %fd108;
  766.         sub.f64         %fd132, %fd130, %fd131;
  767.         add.f64         %fd133, %fd132, %fd108;
  768.         add.f64         %fd134, %fd110, %fd131;
  769.         sub.f64         %fd135, %fd110, %fd134;
  770.         add.f64         %fd136, %fd135, %fd131;
  771.         add.f64         %fd137, %fd136, %fd133;
  772.         add.f64         %fd138, %fd137, %fd106;
  773.         add.f64         %fd139, %fd134, %fd138;
  774.         sub.f64         %fd140, %fd134, %fd139;
  775.         add.f64         %fd141, %fd140, %fd138;
  776.         cvt.rn.f64.s32  %fd142, %r136;
  777.         mov.f64         %fd143, 0d3FE62E42FEFA3000;
  778.         mul.rn.f64      %fd144, %fd142, %fd143;
  779.         mov.f64         %fd145, 0d3D53DE6AF278ECE6;
  780.         mul.rn.f64      %fd146, %fd142, %fd145;
  781.         add.f64         %fd147, %fd144, %fd139;
  782.         sub.f64         %fd148, %fd144, %fd147;
  783.         add.f64         %fd149, %fd148, %fd139;
  784.         add.f64         %fd150, %fd149, %fd141;
  785.         add.f64         %fd151, %fd150, %fd146;
  786.         add.f64         %fd7, %fd147, %fd151;
  787.         sub.f64         %fd152, %fd147, %fd7;
  788.         add.f64         %fd8, %fd152, %fd151;
  789.         // inline asm
  790.         abs.f64         %fd112, %fd241;
  791.         // inline asm
  792.         setp.gt.f64     %p46, %fd112, 0d7F0D2A1BE4048F90;
  793.         @%p46 bra       BB5_59;
  794.         bra.uni         BB5_60;
  795.  
  796. BB5_59:
  797.         mov.f64         %fd154, 0d3F20000000000000;
  798.         mov.f64         %fd155, 0d4000000000000000;
  799.         mul.rn.f64      %fd241, %fd155, %fd154;
  800.  
  801. BB5_60:
  802.         mul.rn.f64      %fd165, %fd7, %fd241;
  803.         neg.f64         %fd159, %fd165;
  804.         // inline asm
  805.         fma.rn.f64      %fd156, %fd7, %fd241, %fd159;
  806.         // inline asm
  807.         // inline asm
  808.         fma.rn.f64      %fd160, %fd8, %fd241, %fd156;
  809.         // inline asm
  810.         add.f64         %fd164, %fd165, %fd160;
  811.         // inline asm
  812.         {
  813.         .reg    .b32 lo;
  814.         mov.b64         {lo, %r112}, %fd164;
  815.         }
  816.         // inline asm
  817.         setp.lt.u32     %p47, %r112, 1082535491;
  818.         setp.lt.s32     %p48, %r112, -1064875759;
  819.         or.pred         %p49, %p47, %p48;
  820.         @%p49 bra       BB5_62;
  821.  
  822.         setp.lt.s32     %p50, %r112, 0;
  823.         selp.f64        %fd167, 0d0000000000000000, %fd1, %p50;
  824.         add.f64         %fd168, %fd164, %fd164;
  825.         setp.nan.f64    %p51, %fd164, %fd164;
  826.         selp.f64        %fd243, %fd168, %fd167, %p51;
  827.         bra.uni         BB5_65;
  828.  
  829. BB5_62:
  830.         mov.f64         %fd171, 0d3FF71547652B82FE;
  831.         mul.rn.f64      %fd170, %fd164, %fd171;
  832.         // inline asm
  833.         abs.f64         %fd169, %fd170;
  834.         // inline asm
  835.         setp.gt.f64     %p52, %fd169, 0d4330000000000000;
  836.         mov.f64         %fd242, %fd170;
  837.         @%p52 bra       BB5_64;
  838.  
  839.         add.f64         %fd173, %fd169, 0d3FE0000000000000;
  840.         // inline asm
  841.         cvt.rmi.f64.f64         %fd172, %fd173;
  842.         // inline asm
  843.         setp.lt.f64     %p53, %fd169, 0d3FE0000000000000;
  844.         selp.f64        %fd176, 0d0000000000000000, %fd172, %p53;
  845.         // inline asm
  846.         {
  847.         .reg    .b32 lo;
  848.         mov.b64         {lo, %r113}, %fd170;
  849.         }
  850.         // inline asm
  851.         // inline asm
  852.         {
  853.         .reg    .b32 hi;
  854.         mov.b64         {%r114, hi}, %fd176;
  855.         }
  856.         // inline asm
  857.         // inline asm
  858.         {
  859.         .reg    .b32 lo;
  860.         mov.b64         {lo, %r115}, %fd176;
  861.         }
  862.         // inline asm
  863.         and.b32         %r118, %r113, -2147483648;
  864.         and.b32         %r119, %r115, 2147483647;
  865.         or.b32          %r117, %r119, %r118;
  866.         // inline asm
  867.         mov.b64         %fd177, {%r114, %r117};
  868.         // inline asm
  869.         mov.f64         %fd242, %fd177;
  870.  
  871. BB5_64:
  872.         mov.f64         %fd180, 0dBFE62E42FEFA39EF;
  873.         // inline asm
  874.         fma.rn.f64      %fd178, %fd242, %fd180, %fd164;
  875.         // inline asm
  876.         mov.f64         %fd184, 0dBC7ABC9E3B39803F;
  877.         // inline asm
  878.         fma.rn.f64      %fd182, %fd242, %fd184, %fd178;
  879.         // inline asm
  880.         cvt.rzi.s32.f64         %r122, %fd242;
  881.         add.s32         %r123, %r122, 55;
  882.         setp.lt.s32     %p54, %r122, -1020;
  883.         selp.b32        %r124, %r123, %r122, %p54;
  884.         selp.f64         %fd235, 0d3C90000000000000, 0d4000000000000000, %p54;
  885.         mov.f64         %fd187, 0d3E21F07FCCF58BAD;
  886.         mov.f64         %fd189, 0d3E5AFD81DA6C3BAF;
  887.         // inline asm
  888.         fma.rn.f64      %fd186, %fd187, %fd182, %fd189;
  889.         // inline asm
  890.         mov.f64         %fd193, 0d3E927E55F60F80E6;
  891.         // inline asm
  892.         fma.rn.f64      %fd190, %fd186, %fd182, %fd193;
  893.         // inline asm
  894.         mov.f64         %fd197, 0d3EC71DDA8F02D666;
  895.         // inline asm
  896.         fma.rn.f64      %fd194, %fd190, %fd182, %fd197;
  897.         // inline asm
  898.         mov.f64         %fd201, 0d3EFA01A013B894E0;
  899.         // inline asm
  900.         fma.rn.f64      %fd198, %fd194, %fd182, %fd201;
  901.         // inline asm
  902.         mov.f64         %fd205, 0d3F2A01A01D3AF788;
  903.         // inline asm
  904.         fma.rn.f64      %fd202, %fd198, %fd182, %fd205;
  905.         // inline asm
  906.         mov.f64         %fd209, 0d3F56C16C16C3A1EC;
  907.         // inline asm
  908.         fma.rn.f64      %fd206, %fd202, %fd182, %fd209;
  909.         // inline asm
  910.         mov.f64         %fd213, 0d3F81111111109161;
  911.         // inline asm
  912.         fma.rn.f64      %fd210, %fd206, %fd182, %fd213;
  913.         // inline asm
  914.         mov.f64         %fd217, 0d3FA55555555554C1;
  915.         // inline asm
  916.         fma.rn.f64      %fd214, %fd210, %fd182, %fd217;
  917.         // inline asm
  918.         mov.f64         %fd221, 0d3FC555555555556F;
  919.         // inline asm
  920.         fma.rn.f64      %fd218, %fd214, %fd182, %fd221;
  921.         // inline asm
  922.         mov.f64         %fd225, 0d3FE0000000000000;
  923.         // inline asm
  924.         fma.rn.f64      %fd222, %fd218, %fd182, %fd225;
  925.         // inline asm
  926.         mul.rn.f64      %fd227, %fd222, %fd182;
  927.         // inline asm
  928.         fma.rn.f64      %fd226, %fd227, %fd182, %fd182;
  929.         // inline asm
  930.         shl.b32         %r125, %r124, 20;
  931.         add.s32         %r121, %r125, 1071644672;
  932.         mov.u32         %r120, 0;
  933.         // inline asm
  934.         mov.b64         %fd230, {%r120, %r121};
  935.         // inline asm
  936.         // inline asm
  937.         fma.rn.f64      %fd231, %fd226, %fd230, %fd230;
  938.         // inline asm
  939.         mul.rn.f64      %fd243, %fd231, %fd235;
  940.  
  941. BB5_65:
  942.         setp.eq.f64     %p55, %fd243, %fd2;
  943.         setp.eq.f64     %p56, %fd243, %fd1;
  944.         or.pred         %p57, %p56, %p55;
  945.  
  946. BB5_66:
  947.         ret;
  948. }