Home | History | Annotate | Download | only in glsl_tests
      1 ; RUN: ./amdgcn_glslc %s | FileCheck -check-prefix=GCN -check-prefix=FUNC %s
      2 
      3 ; We don't want any "v_and" or "v_or" here. v_cvt_f16 only writes the lower 16 bits.
      4 
      5 ; FUNC-LABEL: {{^}}@packhalf:
      6 ; GCN: main
      7 ; GCN: v_interp_mov
      8 ; GCN: v_interp_mov
      9 ; GCN-NEXT: v_cvt_f16_f32
     10 ; GCN-NEXT: v_lshlrev_b32
     11 ; GCN-NEXT: v_cvt_f16_f32
     12 ; GCN-NEXT: epilog
     13 
     14 #shader fs packhalf
     15 #version 420
     16 flat in vec2 v;
     17 out uvec4 o;
     18 void main() {
     19     o.x = packHalf2x16(v);
     20 }
     21 
     22 
     23 ; FUNC-LABEL: {{^}}@unpackhalf:
     24 ; GCN: main
     25 ; GCN: v_interp_mov
     26 ; GCN-NEXT: v_cvt_f32_f16
     27 ; GCN-NEXT: v_lshrrev_b32
     28 ; GCN-NEXT: v_cvt_f32_f16
     29 ; GCN-NEXT: epilog
     30 
     31 #shader fs unpackhalf
     32 #version 420
     33 flat in uint u;
     34 out vec4 o;
     35 void main() {
     36     o.xy = unpackHalf2x16(u);
     37 }
     38