Advertisement
Guest User

k_read

a guest
Feb 24th, 2017
491
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 11.33 KB | None | 0 0
  1. //
  2. // Generated by NVIDIA NVVM Compiler
  3. //
  4. // Compiler Build ID: CL-21458526
  5. // Driver 375.26
  6. // Based on LLVM 3.4svn
  7. //
  8.  
  9. .version 5.0
  10. .target sm_35, texmode_independent
  11. .address_size 64
  12.  
  13.     // .globl   init_z
  14. .const .align 4 .u32 pyopencl_defeat_cache_7afa3ed8fb6c41d786580221a26bc001;
  15.  
  16. .entry init_z(
  17.     .param .u64 .ptr .global .align 8 init_z_param_0
  18. )
  19. {
  20.     .reg .b32   %r<15>;
  21.     .reg .b64   %rd<9>;
  22.  
  23.  
  24.     ld.param.u64    %rd1, [init_z_param_0];
  25.     mov.b32 %r1, %envreg3;
  26.     mov.u32     %r2, %ntid.x;
  27.     mov.u32     %r3, %ctaid.x;
  28.     mad.lo.s32  %r4, %r3, %r2, %r1;
  29.     mov.u32     %r5, %tid.x;
  30.     add.s32     %r6, %r4, %r5;
  31.     mov.b32 %r7, %envreg4;
  32.     mov.u32     %r8, %ntid.y;
  33.     mov.u32     %r9, %ctaid.y;
  34.     mad.lo.s32  %r10, %r9, %r8, %r7;
  35.     mov.u32     %r11, %tid.y;
  36.     add.s32     %r12, %r10, %r11;
  37.     cvt.u64.u32 %rd2, %r12;
  38.     mov.b32 %r13, %envreg7;
  39.     mul.lo.s32  %r14, %r8, %r13;
  40.     mul.wide.s32    %rd3, %r14, %r6;
  41.     add.s64     %rd4, %rd3, %rd2;
  42.     cvt.s64.s32     %rd5, %rd4;
  43.     shl.b64     %rd6, %rd5, 3;
  44.     add.s64     %rd7, %rd1, %rd6;
  45.     mov.u64     %rd8, 4613937818241073152;
  46.     st.global.u64   [%rd7], %rd8;
  47.     ret;
  48. }
  49.  
  50.     // .globl   root
  51. .entry root(
  52.     .param .u64 .ptr .global .align 8 root_param_0
  53. )
  54. {
  55.     .reg .pred  %p<21>;
  56.     .reg .f32   %f<3>;
  57.     .reg .b32   %r<61>;
  58.     .reg .f64   %fd<217>;
  59.     .reg .b64   %rd<8>;
  60.  
  61.  
  62.     ld.param.u64    %rd2, [root_param_0];
  63.     mov.b32 %r18, %envreg3;
  64.     mov.u32     %r19, %ctaid.x;
  65.     mov.u32     %r20, %ntid.x;
  66.     mad.lo.s32  %r21, %r19, %r20, %r18;
  67.     mov.u32     %r22, %tid.x;
  68.     add.s32     %r23, %r21, %r22;
  69.     mov.u32     %r24, %ctaid.y;
  70.     mov.u32     %r25, %ntid.y;
  71.     mov.b32 %r26, %envreg4;
  72.     mad.lo.s32  %r27, %r24, %r25, %r26;
  73.     mov.u32     %r28, %tid.y;
  74.     add.s32     %r29, %r27, %r28;
  75.     mov.b32 %r30, %envreg7;
  76.     mul.lo.s32  %r31, %r25, %r30;
  77.     mad.lo.s32  %r32, %r31, %r23, %r29;
  78.     mul.wide.s32    %rd3, %r32, 8;
  79.     add.s64     %rd1, %rd2, %rd3;
  80.     ld.global.f64   %fd25, [%rd1];
  81.     cvt.rzi.s32.f64 %r33, %fd25;
  82.     add.s32     %r34, %r33, -1;
  83.     cvt.rn.f64.s32  %fd26, %r34;
  84.     mov.f64     %fd27, 0d4032000000000000;
  85.     div.rn.f64  %fd1, %fd27, %fd26;
  86.     setp.eq.f64 %p1, %fd1, 0d3FF0000000000000;
  87.     mov.f64     %fd216, 0d3FF0000000000000;
  88.     @%p1 bra    BB1_26;
  89.  
  90.     abs.f64     %fd2, %fd1;
  91.     setp.gtu.f64    %p2, %fd2, 0d7FF0000000000000;
  92.     @%p2 bra    BB1_25;
  93.     bra.uni     BB1_2;
  94.  
  95. BB1_25:
  96.     add.f64     %fd216, %fd1, 0d3FE0000000000000;
  97.     bra.uni     BB1_26;
  98.  
  99. BB1_2:
  100.     setp.eq.f64 %p3, %fd1, 0d7FF0000000000000;
  101.     @%p3 bra    BB1_24;
  102.     bra.uni     BB1_3;
  103.  
  104. BB1_24:
  105.     mov.f64     %fd213, 0d3FE0000000000000;
  106.     {
  107.     .reg .b32 %temp;
  108.     mov.b64     {%temp, %r55}, %fd213;
  109.     }
  110.     setp.gt.s32 %p20, %r55, -1;
  111.     selp.f64    %fd216, 0d7FF0000000000000, 0d0000000000000000, %p20;
  112.     bra.uni     BB1_26;
  113.  
  114. BB1_3:
  115.     mov.f64     %fd28, 0d3FE0000000000000;
  116.     mul.rn.f64  %fd29, %fd28, %fd28;
  117.     cvt.rzi.f64.f64 %fd30, %fd29;
  118.     mov.f64     %fd31, 0d4000000000000000;
  119.     mul.rn.f64  %fd32, %fd31, %fd30;
  120.     sub.f64     %fd33, %fd28, %fd32;
  121.     abs.f64     %fd3, %fd33;
  122.     setp.eq.f64 %p4, %fd1, 0d0000000000000000;
  123.     @%p4 bra    BB1_23;
  124.     bra.uni     BB1_4;
  125.  
  126. BB1_23:
  127.     setp.eq.f64 %p19, %fd3, 0d3FF0000000000000;
  128.     selp.f64    %fd216, %fd1, 0d0000000000000000, %p19;
  129.     bra.uni     BB1_26;
  130.  
  131. BB1_4:
  132.     setp.eq.f64 %p5, %fd1, 0dFFF0000000000000;
  133.     @%p5 bra    BB1_21;
  134.     bra.uni     BB1_5;
  135.  
  136. BB1_21:
  137.     neg.f64     %fd216, %fd1;
  138.     setp.neu.f64    %p18, %fd3, 0d3FF0000000000000;
  139.     @%p18 bra   BB1_26;
  140.  
  141.     mov.b64      %rd6, %fd216;
  142.     xor.b64     %rd7, %rd6, -9223372036854775808;
  143.     mov.b64      %fd216, %rd7;
  144.     bra.uni     BB1_26;
  145.  
  146. BB1_5:
  147.     setp.geu.f64    %p6, %fd1, 0d0000000000000000;
  148.     @%p6 bra    BB1_7;
  149.  
  150.     cvt.rzi.f64.f64 %fd36, %fd28;
  151.     setp.neu.f64    %p7, %fd36, 0d3FE0000000000000;
  152.     mov.f64     %fd216, 0dFFF8000000000000;
  153.     @%p7 bra    BB1_26;
  154.  
  155. BB1_7:
  156.     // inline asm
  157.     {
  158.     .reg    .b32 lo;
  159.     mov.b64     {lo, %r57}, %fd2;
  160.     }
  161.     // inline asm
  162.     // inline asm
  163.     {
  164.     .reg    .b32 hi;
  165.     mov.b64     {%r56, hi}, %fd2;
  166.     }
  167.     // inline asm
  168.     bfe.u32     %r58, %r57, 20, 11;
  169.     setp.ne.s32 %p8, %r58, 0;
  170.     @%p8 bra    BB1_9;
  171.  
  172.     mov.f64     %fd41, 0d4350000000000000;
  173.     mul.rn.f64  %fd40, %fd2, %fd41;
  174.     // inline asm
  175.     {
  176.     .reg    .b32 lo;
  177.     mov.b64     {lo, %r57}, %fd40;
  178.     }
  179.     // inline asm
  180.     // inline asm
  181.     {
  182.     .reg    .b32 hi;
  183.     mov.b64     {%r56, hi}, %fd40;
  184.     }
  185.     // inline asm
  186.     bfe.u32     %r39, %r57, 20, 11;
  187.     add.s32     %r58, %r39, -54;
  188.  
  189. BB1_9:
  190.     add.s32     %r59, %r58, -1023;
  191.     and.b32     %r42, %r57, -2146435073;
  192.     or.b32      %r41, %r42, 1072693248;
  193.     // inline asm
  194.     mov.b64     %fd214, {%r56, %r41};
  195.     // inline asm
  196.     setp.lt.u32 %p9, %r41, 1073127583;
  197.     @%p9 bra    BB1_11;
  198.  
  199.     // inline asm
  200.     {
  201.     .reg    .b32 hi;
  202.     mov.b64     {%r43, hi}, %fd214;
  203.     }
  204.     // inline asm
  205.     // inline asm
  206.     {
  207.     .reg    .b32 lo;
  208.     mov.b64     {lo, %r44}, %fd214;
  209.     }
  210.     // inline asm
  211.     add.s32     %r46, %r44, -1048576;
  212.     // inline asm
  213.     mov.b64     %fd214, {%r43, %r46};
  214.     // inline asm
  215.     add.s32     %r59, %r58, -1022;
  216.  
  217. BB1_11:
  218.     add.f64     %fd130, %fd214, 0d3FF0000000000000;
  219.     rcp.rn.f64  %fd131, %fd130;
  220.     add.f64     %fd72, %fd214, 0dBFF0000000000000;
  221.     mul.rn.f64  %fd132, %fd72, %fd131;
  222.     add.f64     %fd120, %fd132, %fd132;
  223.     mul.rn.f64  %fd68, %fd120, %fd120;
  224.     mov.f64     %fd47, 0d3EB0F5FF7D2CAFE2;
  225.     mov.f64     %fd49, 0d3ED0F5D241AD3B5A;
  226.     // inline asm
  227.     fma.rn.f64  %fd46, %fd47, %fd68, %fd49;
  228.     // inline asm
  229.     mov.f64     %fd53, 0d3EF3B20A75488A3F;
  230.     // inline asm
  231.     fma.rn.f64  %fd50, %fd46, %fd68, %fd53;
  232.     // inline asm
  233.     mov.f64     %fd57, 0d3F1745CDE4FAECD5;
  234.     // inline asm
  235.     fma.rn.f64  %fd54, %fd50, %fd68, %fd57;
  236.     // inline asm
  237.     mov.f64     %fd61, 0d3F3C71C7258A578B;
  238.     // inline asm
  239.     fma.rn.f64  %fd58, %fd54, %fd68, %fd61;
  240.     // inline asm
  241.     mov.f64     %fd65, 0d3F6249249242B910;
  242.     // inline asm
  243.     fma.rn.f64  %fd62, %fd58, %fd68, %fd65;
  244.     // inline asm
  245.     mov.f64     %fd69, 0d3F89999999999DFB;
  246.     // inline asm
  247.     fma.rn.f64  %fd66, %fd62, %fd68, %fd69;
  248.     // inline asm
  249.     mul.rn.f64  %fd133, %fd66, %fd68;
  250.     sub.f64     %fd134, %fd72, %fd120;
  251.     mul.rn.f64  %fd73, %fd31, %fd134;
  252.     neg.f64     %fd71, %fd120;
  253.     // inline asm
  254.     fma.rn.f64  %fd70, %fd71, %fd72, %fd73;
  255.     // inline asm
  256.     mul.rn.f64  %fd116, %fd131, %fd70;
  257.     add.f64     %fd136, %fd133, 0d3FB5555555555555;
  258.     mov.f64     %fd137, 0d3FB5555555555555;
  259.     sub.f64     %fd138, %fd137, %fd136;
  260.     add.f64     %fd139, %fd133, %fd138;
  261.     add.f64     %fd140, %fd139, 0d0000000000000000;
  262.     add.f64     %fd141, %fd140, 0dBC46A4CB00B9E7B0;
  263.     add.f64     %fd83, %fd136, %fd141;
  264.     sub.f64     %fd142, %fd136, %fd83;
  265.     add.f64     %fd87, %fd141, %fd142;
  266.     mul.rn.f64  %fd143, %fd83, %fd120;
  267.     neg.f64     %fd77, %fd143;
  268.     // inline asm
  269.     fma.rn.f64  %fd74, %fd83, %fd120, %fd77;
  270.     // inline asm
  271.     // inline asm
  272.     fma.rn.f64  %fd78, %fd87, %fd116, %fd74;
  273.     // inline asm
  274.     // inline asm
  275.     fma.rn.f64  %fd82, %fd83, %fd116, %fd78;
  276.     // inline asm
  277.     // inline asm
  278.     fma.rn.f64  %fd86, %fd87, %fd120, %fd82;
  279.     // inline asm
  280.     add.f64     %fd99, %fd143, %fd86;
  281.     sub.f64     %fd144, %fd143, %fd99;
  282.     add.f64     %fd103, %fd86, %fd144;
  283.     mul.rn.f64  %fd145, %fd99, %fd120;
  284.     neg.f64     %fd93, %fd145;
  285.     // inline asm
  286.     fma.rn.f64  %fd90, %fd99, %fd120, %fd93;
  287.     // inline asm
  288.     // inline asm
  289.     fma.rn.f64  %fd94, %fd103, %fd116, %fd90;
  290.     // inline asm
  291.     // inline asm
  292.     fma.rn.f64  %fd98, %fd99, %fd116, %fd94;
  293.     // inline asm
  294.     // inline asm
  295.     fma.rn.f64  %fd102, %fd103, %fd120, %fd98;
  296.     // inline asm
  297.     add.f64     %fd115, %fd145, %fd102;
  298.     sub.f64     %fd146, %fd145, %fd115;
  299.     add.f64     %fd119, %fd102, %fd146;
  300.     mul.rn.f64  %fd147, %fd115, %fd120;
  301.     neg.f64     %fd109, %fd147;
  302.     // inline asm
  303.     fma.rn.f64  %fd106, %fd115, %fd120, %fd109;
  304.     // inline asm
  305.     // inline asm
  306.     fma.rn.f64  %fd110, %fd119, %fd116, %fd106;
  307.     // inline asm
  308.     // inline asm
  309.     fma.rn.f64  %fd114, %fd115, %fd116, %fd110;
  310.     // inline asm
  311.     // inline asm
  312.     fma.rn.f64  %fd118, %fd119, %fd120, %fd114;
  313.     // inline asm
  314.     add.f64     %fd148, %fd147, %fd118;
  315.     sub.f64     %fd149, %fd147, %fd148;
  316.     add.f64     %fd150, %fd118, %fd149;
  317.     add.f64     %fd151, %fd120, %fd148;
  318.     sub.f64     %fd152, %fd120, %fd151;
  319.     add.f64     %fd153, %fd148, %fd152;
  320.     add.f64     %fd154, %fd150, %fd153;
  321.     add.f64     %fd155, %fd116, %fd154;
  322.     add.f64     %fd156, %fd151, %fd155;
  323.     sub.f64     %fd157, %fd151, %fd156;
  324.     add.f64     %fd158, %fd155, %fd157;
  325.     cvt.rn.f64.s32  %fd159, %r59;
  326.     mov.f64     %fd160, 0d3FE62E42FEFA3000;
  327.     mul.rn.f64  %fd161, %fd159, %fd160;
  328.     mov.f64     %fd162, 0d3D53DE6AF278ECE6;
  329.     mul.rn.f64  %fd163, %fd159, %fd162;
  330.     add.f64     %fd164, %fd161, %fd156;
  331.     sub.f64     %fd165, %fd161, %fd164;
  332.     add.f64     %fd166, %fd156, %fd165;
  333.     add.f64     %fd167, %fd158, %fd166;
  334.     add.f64     %fd168, %fd163, %fd167;
  335.     add.f64     %fd123, %fd164, %fd168;
  336.     sub.f64     %fd169, %fd164, %fd123;
  337.     add.f64     %fd127, %fd168, %fd169;
  338.     mul.rn.f64  %fd170, %fd123, %fd28;
  339.     neg.f64     %fd125, %fd170;
  340.     // inline asm
  341.     fma.rn.f64  %fd122, %fd123, %fd28, %fd125;
  342.     // inline asm
  343.     // inline asm
  344.     fma.rn.f64  %fd126, %fd127, %fd28, %fd122;
  345.     // inline asm
  346.     add.f64     %fd7, %fd170, %fd126;
  347.     sub.f64     %fd171, %fd170, %fd7;
  348.     add.f64     %fd8, %fd126, %fd171;
  349.     {
  350.     .reg .b32 %temp;
  351.     mov.b64     {%temp, %r13}, %fd7;
  352.     }
  353.     mov.b32      %f1, %r13;
  354.     abs.f32     %f2, %f1;
  355.     setp.lt.f32 %p10, %f2, 0f40874911;
  356.     @%p10 bra   BB1_13;
  357.     bra.uni     BB1_12;
  358.  
  359. BB1_13:
  360.     mov.f64     %fd175, 0d3FF71547652B82FE;
  361.     mul.rn.f64  %fd176, %fd7, %fd175;
  362.     mov.f64     %fd177, 0d4338000000000000;
  363.     add.rn.f64  %fd178, %fd176, %fd177;
  364.     {
  365.     .reg .b32 %temp;
  366.     mov.b64     {%r14, %temp}, %fd178;
  367.     }
  368.     mov.f64     %fd179, 0dC338000000000000;
  369.     add.rn.f64  %fd180, %fd178, %fd179;
  370.     mov.f64     %fd181, 0dBFE62E42FEFA39EF;
  371.     fma.rn.f64  %fd182, %fd180, %fd181, %fd7;
  372.     mov.f64     %fd183, 0dBC7ABC9E3B39803F;
  373.     fma.rn.f64  %fd184, %fd180, %fd183, %fd182;
  374.     mov.f64     %fd185, 0d3E928AF3FCA213EA;
  375.     mov.f64     %fd186, 0d3E5ADE1569CE2BDF;
  376.     fma.rn.f64  %fd187, %fd186, %fd184, %fd185;
  377.     mov.f64     %fd188, 0d3EC71DEE62401315;
  378.     fma.rn.f64  %fd189, %fd187, %fd184, %fd188;
  379.     mov.f64     %fd190, 0d3EFA01997C89EB71;
  380.     fma.rn.f64  %fd191, %fd189, %fd184, %fd190;
  381.     mov.f64     %fd192, 0d3F2A01A014761F65;
  382.     fma.rn.f64  %fd193, %fd191, %fd184, %fd192;
  383.     mov.f64     %fd194, 0d3F56C16C1852B7AF;
  384.     fma.rn.f64  %fd195, %fd193, %fd184, %fd194;
  385.     mov.f64     %fd196, 0d3F81111111122322;
  386.     fma.rn.f64  %fd197, %fd195, %fd184, %fd196;
  387.     mov.f64     %fd198, 0d3FA55555555502A1;
  388.     fma.rn.f64  %fd199, %fd197, %fd184, %fd198;
  389.     mov.f64     %fd200, 0d3FC5555555555511;
  390.     fma.rn.f64  %fd201, %fd199, %fd184, %fd200;
  391.     mov.f64     %fd202, 0d3FE000000000000B;
  392.     fma.rn.f64  %fd203, %fd201, %fd184, %fd202;
  393.     mov.f64     %fd204, 0d3FF0000000000000;
  394.     fma.rn.f64  %fd205, %fd203, %fd184, %fd204;
  395.     fma.rn.f64  %fd215, %fd205, %fd184, %fd204;
  396.     abs.s32     %r47, %r14;
  397.     setp.lt.s32 %p13, %r47, 1023;
  398.     @%p13 bra   BB1_15;
  399.     bra.uni     BB1_14;
  400.  
  401. BB1_15:
  402.     shl.b32     %r53, %r14, 20;
  403.     add.s32     %r60, %r53, 1072693248;
  404.     bra.uni     BB1_16;
  405.  
  406. BB1_12:
  407.     setp.lt.s32 %p11, %r13, 0;
  408.     selp.f64    %fd172, 0d0000000000000000, 0d7FF0000000000000, %p11;
  409.     abs.f64     %fd173, %fd7;
  410.     setp.gtu.f64    %p12, %fd173, 0d7FF0000000000000;
  411.     add.f64     %fd174, %fd7, %fd7;
  412.     selp.f64    %fd216, %fd174, %fd172, %p12;
  413.     bra.uni     BB1_17;
  414.  
  415. BB1_14:
  416.     add.s32     %r48, %r14, 2046;
  417.     shl.b32     %r49, %r48, 19;
  418.     and.b32     %r50, %r49, -1048576;
  419.     shl.b32     %r51, %r48, 20;
  420.     sub.s32     %r60, %r51, %r50;
  421.     mov.u32     %r52, 0;
  422.     mov.b64     %fd206, {%r52, %r50};
  423.     mul.f64     %fd215, %fd215, %fd206;
  424.  
  425. BB1_16:
  426.     mov.u32     %r54, 0;
  427.     mov.b64     %fd207, {%r54, %r60};
  428.     mul.f64     %fd216, %fd215, %fd207;
  429.  
  430. BB1_17:
  431.     abs.f64     %fd208, %fd216;
  432.     setp.eq.f64 %p14, %fd208, 0d7FF0000000000000;
  433.     @%p14 bra   BB1_19;
  434.  
  435.     // inline asm
  436.     fma.rn.f64  %fd216, %fd216, %fd8, %fd216;
  437.     // inline asm
  438.  
  439. BB1_19:
  440.     setp.neu.f64    %p15, %fd3, 0d3FF0000000000000;
  441.     or.pred     %p17, %p6, %p15;
  442.     @%p17 bra   BB1_26;
  443.  
  444.     mov.b64      %rd4, %fd216;
  445.     xor.b64     %rd5, %rd4, -9223372036854775808;
  446.     mov.b64      %fd216, %rd5;
  447.  
  448. BB1_26:
  449.     st.global.f64   [%rd1], %fd216;
  450.     ret;
  451. }
  452.  
  453.  
  454. \00\00
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement