@@ -583,3 +583,75 @@ func.func @distance_invalid_result(%arg0 : f32, %arg1 : f32) {
583
583
%0 = spirv.GL.Distance %arg0 , %arg1 : f32 , f32 -> i32
584
584
return
585
585
}
586
+
587
+ // -----
588
+
589
+ //===----------------------------------------------------------------------===//
590
+ // spirv.GL.Cross
591
+ //===----------------------------------------------------------------------===//
592
+
593
+ func.func @cross (%arg0 : vector <3 xf32 >, %arg1 : vector <3 xf32 >) {
594
+ %2 = spirv.GL.Cross %arg0 , %arg1 : vector <3 xf32 >
595
+ // CHECK: %{{.+}} = spirv.GL.Cross %{{.+}}, %{{.+}} : vector<3xf32>
596
+ return
597
+ }
598
+
599
+ // -----
600
+
601
+ func.func @cross_invalid_type (%arg0 : vector <3 xi32 >, %arg1 : vector <3 xi32 >) {
602
+ // expected-error @+1 {{'spirv.GL.Cross' op operand #0 must be 16/32/64-bit float or vector of 16/32/64-bit float values of length 2/3/4/8/16, but got 'vector<3xi32>'}}
603
+ %0 = spirv.GL.Cross %arg0 , %arg1 : vector <3 xi32 >
604
+ return
605
+ }
606
+
607
+ // -----
608
+
609
+ //===----------------------------------------------------------------------===//
610
+ // spirv.GL.Normalize
611
+ //===----------------------------------------------------------------------===//
612
+
613
+ func.func @normalize_scalar (%arg0 : f32 ) {
614
+ %2 = spirv.GL.Normalize %arg0 : f32
615
+ // CHECK: %{{.+}} = spirv.GL.Normalize %{{.+}} : f32
616
+ return
617
+ }
618
+
619
+ func.func @normalize_vector (%arg0 : vector <3 xf32 >) {
620
+ %2 = spirv.GL.Normalize %arg0 : vector <3 xf32 >
621
+ // CHECK: %{{.+}} = spirv.GL.Normalize %{{.+}} : vector<3xf32>
622
+ return
623
+ }
624
+
625
+ // -----
626
+
627
+ func.func @normalize_invalid_type (%arg0 : i32 ) {
628
+ // expected-error @+1 {{'spirv.GL.Normalize' op operand #0 must be 16/32/64-bit float or vector of 16/32/64-bit float values}}
629
+ %0 = spirv.GL.Normalize %arg0 : i32
630
+ return
631
+ }
632
+
633
+ // -----
634
+
635
+ //===----------------------------------------------------------------------===//
636
+ // spirv.GL.Reflect
637
+ //===----------------------------------------------------------------------===//
638
+
639
+ func.func @reflect_scalar (%arg0 : f32 , %arg1 : f32 ) {
640
+ %2 = spirv.GL.Reflect %arg0 , %arg1 : f32
641
+ // CHECK: %{{.+}} = spirv.GL.Reflect %{{.+}}, %{{.+}} : f32
642
+ return
643
+ }
644
+
645
+ func.func @reflect_vector (%arg0 : vector <3 xf32 >, %arg1 : vector <3 xf32 >) {
646
+ %2 = spirv.GL.Reflect %arg0 , %arg1 : vector <3 xf32 >
647
+ // CHECK: %{{.+}} = spirv.GL.Reflect %{{.+}}, %{{.+}} : vector<3xf32>
648
+ return
649
+ }
650
+
651
+ // -----
652
+
653
+ func.func @reflect_invalid_type (%arg0 : i32 , %arg1 : i32 ) {
654
+ // expected-error @+1 {{'spirv.GL.Reflect' op operand #0 must be 16/32/64-bit float or vector of 16/32/64-bit float values}}
655
+ %0 = spirv.GL.Reflect %arg0 , %arg1 : i32
656
+ return
657
+ }
0 commit comments