Skip to content

Commit c002ce1

Browse files
committed
[Review] add fcmp and ExtInst tests
1 parent cfc7de5 commit c002ce1

File tree

2 files changed

+48
-22
lines changed

2 files changed

+48
-22
lines changed

test/transcoding/fast-math-opencl-builtins.ll

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
; RUN: llvm-as %s -o %t.bc
2-
; RUN: llvm-spirv -spirv-text %t.bc -o - | FileCheck %s --check-prefix=CHECK-SPIRV
2+
; RUN: llvm-spirv -spirv-text %t.bc -o - | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-DEFAULT
3+
; RUN: llvm-spirv -spirv-text %t.bc --spirv-ext=+SPV_KHR_float_controls2 -o - | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-FC2
34
; RUN: llvm-spirv %t.bc -o %t.spv
5+
; RUN: llvm-spirv %t.bc --spirv-ext=+SPV_KHR_float_controls2 -o %t.fc2.spv
46
; RUN: spirv-val %t.spv
5-
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis -o - | FileCheck %s --check-prefix=CHECK-LLVM-OCL
6-
; RUN: llvm-spirv -r --spirv-target-env=SPV-IR %t.spv -o - | llvm-dis -o - | FileCheck %s --check-prefix=CHECK-LLVM-SPV
7+
; RUN: spirv-val %t.fc2.spv
8+
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis -o - | FileCheck %s --check-prefixes=CHECK-LLVM-OCL,CHECK-LLVM-OCL-DEFAULT
9+
; RUN: llvm-spirv -r %t.fc2.spv -o - | llvm-dis -o - | FileCheck %s --check-prefixes=CHECK-LLVM-OCL,CHECK-LLVM-OCL-FC2
10+
; RUN: llvm-spirv -r --spirv-target-env=SPV-IR %t.spv -o - | llvm-dis -o - | FileCheck %s --check-prefixes=CHECK-LLVM-SPV,CHECK-LLVM-SPV-DEFAULT
11+
; RUN: llvm-spirv -r --spirv-target-env=SPV-IR %t.fc2.spv -o - | llvm-dis -o - | FileCheck %s --check-prefixes=CHECK-LLVM-SPV,CHECK-LLVM-SPV-FC2
712

813
; RUN: llvm-spirv -spirv-text --spirv-max-version=1.5 %t.bc -o - | FileCheck %s --check-prefix=CHECK-SPIRV-NEG
914

1015
; CHECK-SPIRV: Decorate [[#FPDec1:]] FPFastMathMode 3
1116
; CHECK-SPIRV: Decorate [[#FPDec2:]] FPFastMathMode 2
1217
; CHECK-SPIRV: Decorate [[#FPDec3:]] FPFastMathMode 3
13-
; CHECK-SPIRV: Decorate [[#FPDec4:]] FPFastMathMode 16
18+
; CHECK-SPIRV-DEFAULT: Decorate [[#FPDec4:]] FPFastMathMode 16
19+
; CHECK-SPIRV-FC2: Decorate [[#FPDec4:]] FPFastMathMode 458767
1420
; CHECK-SPIRV: ExtInst [[#]] [[#FPDec1]] [[#]] fmax [[#]] [[#]]
1521
; CHECK-SPIRV: ExtInst [[#]] [[#FPDec2]] [[#]] fmin [[#]] [[#]]
1622
; CHECK-SPIRV: ExtInst [[#]] [[#FPDec3]] [[#]] ldexp [[#]] [[#]]
@@ -21,12 +27,14 @@
2127
; CHECK-LLVM-OCL: call nnan ninf spir_func float @_Z4fmaxff(float %[[#]], float %[[#]])
2228
; CHECK-LLVM-OCL: call ninf spir_func float @_Z4fminff(float %[[#]], float %[[#]])
2329
; CHECK-LLVM-OCL: call nnan ninf spir_func float @_Z5ldexpfi(float %[[#]], i32 %[[#]])
24-
; CHECK-LLVM-OCL: call fast spir_func float @_Z4fmaxff(float %[[#]], float %[[#]])
30+
; CHECK-LLVM-OCL-DEFAULT: call fast spir_func float @_Z4fmaxff(float %[[#]], float %[[#]])
31+
; CHECK-LLVM-OCL-FC2: call reassoc nnan ninf nsz arcp contract spir_func float @_Z4fmaxff(float %[[#]], float %[[#]])
2532

2633
; CHECK-LLVM-SPV: call nnan ninf spir_func float @_Z16__spirv_ocl_fmaxff(float %[[#]], float %[[#]])
2734
; CHECK-LLVM-SPV: call ninf spir_func float @_Z16__spirv_ocl_fminff(float %[[#]], float %[[#]])
2835
; CHECK-LLVM-SPV: call nnan ninf spir_func float @_Z17__spirv_ocl_ldexpfi(float %[[#]], i32 %[[#]])
29-
; CHECK-LLVM-SPV: call fast spir_func float @_Z16__spirv_ocl_fmaxff(float %[[#]], float %[[#]])
36+
; CHECK-LLVM-SPV-DEFAULT: call fast spir_func float @_Z16__spirv_ocl_fmaxff(float %[[#]], float %[[#]])
37+
; CHECK-LLVM-SPV-FC2: call reassoc nnan ninf nsz arcp contract spir_func float @_Z16__spirv_ocl_fmaxff(float %[[#]], float %[[#]])
3038

3139
; ModuleID = 'test.bc'
3240
source_filename = "test.cpp"

test/transcoding/fcmp.ll

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
; RUN: spirv-val %t.spv
55
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis -o - | FileCheck %s --check-prefix=CHECK-LLVM
66

7-
; RUN: llvm-spirv -spirv-text %t.bc --spirv-max-version=1.6
8-
; FileCheck < %t.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-16
7+
; The next 2 lines do not check the individual flags for each fcmp. Only for 'r1', 'r2' and 'r6'.
8+
; RUN: llvm-spirv -spirv-text %t.bc --spirv-max-version=1.6 -o - | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-16,CHECK-SPIRV-16-DEFAULT
9+
; RUN: llvm-spirv -spirv-text %t.bc --spirv-max-version=1.6 --spirv-ext=+SPV_KHR_float_controls2 -o - | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-16,CHECK-SPIRV-16-FC2
10+
911
; RUN: llvm-spirv %t.bc --spirv-max-version=1.6 -o %t.spv
12+
; RUN: llvm-spirv %t.bc --spirv-max-version=1.6 --spirv-ext=+SPV_KHR_float_controls2 -o %t.fc2.spv
1013
; RUN: spirv-val %t.spv
11-
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis -o %t.rev.ll
12-
; RUN: FileCheck < %t.rev.ll %s --check-prefix=CHECK-LLVM-16
14+
; RUN: spirv-val %t.fc2.spv
15+
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis -o - | FileCheck %s --check-prefixes=CHECK-LLVM-16,CHECK-LLVM-16-DEFAULT
16+
; RUN: llvm-spirv -r %t.fc2.spv -o - | llvm-dis -o - | FileCheck %s --check-prefixes=CHECK-LLVM-16,CHECK-LLVM-16-FC2
1317

1418
; CHECK-SPIRV: 3 Name [[#r1:]] "r1"
1519
; CHECK-SPIRV: 3 Name [[#r2:]] "r2"
@@ -104,6 +108,8 @@
104108
; CHECK-SPIRV-15-NOT: 4 Decorate {{.*}} FPFastMathMode
105109
; CHECK-SPIRV-16-NOT: 4 Decorate [[#r1]] FPFastMathMode
106110
; CHECK-SPIRV-16: Decorate [[#r2]] FPFastMathMode 1
111+
; CHECK-SPIRV-16-DEFAULT: Decorate [[#r6]] FPFastMathMode 16
112+
; CHECK-SPIRV-16-FC2: Decorate [[#r6]] FPFastMathMode 458767
107113
; CHECK-SPIRV: 2 TypeBool [[#bool:]]
108114
; CHECK-SPIRV: 5 FOrdEqual [[#bool]] [[#r1]]
109115
; CHECK-SPIRV: 5 FOrdEqual [[#bool]] [[#r2]]
@@ -293,42 +299,48 @@
293299
; CHECK-LLVM-16: %r3 = fcmp ninf oeq float %a, %b
294300
; CHECK-LLVM-16: %r4 = fcmp nsz oeq float %a, %b
295301
; CHECK-LLVM-16: %r5 = fcmp arcp oeq float %a, %b
296-
; CHECK-LLVM-16: %r6 = fcmp fast oeq float %a, %b
302+
; CHECK-LLVM-16-DEFAULT: %r6 = fcmp fast oeq float %a, %b
303+
; CHECK-LLVM-16-FC2: %r6 = fcmp reassoc nnan ninf nsz arcp contract oeq float %a, %b
297304
; CHECK-LLVM-16: %r7 = fcmp nnan ninf oeq float %a, %b
298305
; CHECK-LLVM-16: %r8 = fcmp one float %a, %b
299306
; CHECK-LLVM-16: %r9 = fcmp nnan one float %a, %b
300307
; CHECK-LLVM-16: %r10 = fcmp ninf one float %a, %b
301308
; CHECK-LLVM-16: %r11 = fcmp nsz one float %a, %b
302309
; CHECK-LLVM-16: %r12 = fcmp arcp one float %a, %b
303-
; CHECK-LLVM-16: %r13 = fcmp fast one float %a, %b
310+
; CHECK-LLVM-16-DEFAULT: %r13 = fcmp fast one float %a, %b
311+
; CHECK-LLVM-16-FC2: %r13 = fcmp reassoc nnan ninf nsz arcp contract one float %a, %b
304312
; CHECK-LLVM-16: %r14 = fcmp nnan ninf one float %a, %b
305313
; CHECK-LLVM-16: %r15 = fcmp olt float %a, %b
306314
; CHECK-LLVM-16: %r16 = fcmp nnan olt float %a, %b
307315
; CHECK-LLVM-16: %r17 = fcmp ninf olt float %a, %b
308316
; CHECK-LLVM-16: %r18 = fcmp nsz olt float %a, %b
309317
; CHECK-LLVM-16: %r19 = fcmp arcp olt float %a, %b
310-
; CHECK-LLVM-16: %r20 = fcmp fast olt float %a, %b
318+
; CHECK-LLVM-16-DEFAULT: %r20 = fcmp fast olt float %a, %b
319+
; CHECK-LLVM-16-FC2: %r20 = fcmp reassoc nnan ninf nsz arcp contract olt float %a, %b
311320
; CHECK-LLVM-16: %r21 = fcmp nnan ninf olt float %a, %b
312321
; CHECK-LLVM-16: %r22 = fcmp ogt float %a, %b
313322
; CHECK-LLVM-16: %r23 = fcmp nnan ogt float %a, %b
314323
; CHECK-LLVM-16: %r24 = fcmp ninf ogt float %a, %b
315324
; CHECK-LLVM-16: %r25 = fcmp nsz ogt float %a, %b
316325
; CHECK-LLVM-16: %r26 = fcmp arcp ogt float %a, %b
317-
; CHECK-LLVM-16: %r27 = fcmp fast ogt float %a, %b
326+
; CHECK-LLVM-16-DEFAULT: %r27 = fcmp fast ogt float %a, %b
327+
; CHECK-LLVM-16-FC2: %r27 = fcmp reassoc nnan ninf nsz arcp contract ogt float %a, %b
318328
; CHECK-LLVM-16: %r28 = fcmp nnan ninf ogt float %a, %b
319329
; CHECK-LLVM-16: %r29 = fcmp ole float %a, %b
320330
; CHECK-LLVM-16: %r30 = fcmp nnan ole float %a, %b
321331
; CHECK-LLVM-16: %r31 = fcmp ninf ole float %a, %b
322332
; CHECK-LLVM-16: %r32 = fcmp nsz ole float %a, %b
323333
; CHECK-LLVM-16: %r33 = fcmp arcp ole float %a, %b
324-
; CHECK-LLVM-16: %r34 = fcmp fast ole float %a, %b
334+
; CHECK-LLVM-16-DEFAULT: %r34 = fcmp fast ole float %a, %b
335+
; CHECK-LLVM-16-FC2: %r34 = fcmp reassoc nnan ninf nsz arcp contract ole float %a, %b
325336
; CHECK-LLVM-16: %r35 = fcmp nnan ninf ole float %a, %b
326337
; CHECK-LLVM-16: %r36 = fcmp oge float %a, %b
327338
; CHECK-LLVM-16: %r37 = fcmp nnan oge float %a, %b
328339
; CHECK-LLVM-16: %r38 = fcmp ninf oge float %a, %b
329340
; CHECK-LLVM-16: %r39 = fcmp nsz oge float %a, %b
330341
; CHECK-LLVM-16: %r40 = fcmp arcp oge float %a, %b
331-
; CHECK-LLVM-16: %r41 = fcmp fast oge float %a, %b
342+
; CHECK-LLVM-16-DEFAULT: %r41 = fcmp fast oge float %a, %b
343+
; CHECK-LLVM-16-FC2: %r41 = fcmp reassoc nnan ninf nsz arcp contract oge float %a, %b
332344
; CHECK-LLVM-16: %r42 = fcmp nnan ninf oge float %a, %b
333345
; CHECK-LLVM-16: %r43 = fcmp ord float %a, %b
334346
; CHECK-LLVM-16: %r44 = fcmp ninf ord float %a, %b
@@ -338,42 +350,48 @@
338350
; CHECK-LLVM-16: %r48 = fcmp ninf ueq float %a, %b
339351
; CHECK-LLVM-16: %r49 = fcmp nsz ueq float %a, %b
340352
; CHECK-LLVM-16: %r50 = fcmp arcp ueq float %a, %b
341-
; CHECK-LLVM-16: %r51 = fcmp fast ueq float %a, %b
353+
; CHECK-LLVM-16-DEFAULT: %r51 = fcmp fast ueq float %a, %b
354+
; CHECK-LLVM-16-FC2: %r51 = fcmp reassoc nnan ninf nsz arcp contract ueq float %a, %b
342355
; CHECK-LLVM-16: %r52 = fcmp nnan ninf ueq float %a, %b
343356
; CHECK-LLVM-16: %r53 = fcmp une float %a, %b
344357
; CHECK-LLVM-16: %r54 = fcmp nnan une float %a, %b
345358
; CHECK-LLVM-16: %r55 = fcmp ninf une float %a, %b
346359
; CHECK-LLVM-16: %r56 = fcmp nsz une float %a, %b
347360
; CHECK-LLVM-16: %r57 = fcmp arcp une float %a, %b
348-
; CHECK-LLVM-16: %r58 = fcmp fast une float %a, %b
361+
; CHECK-LLVM-16-DEFAULT: %r58 = fcmp fast une float %a, %b
362+
; CHECK-LLVM-16-FC2: %r58 = fcmp reassoc nnan ninf nsz arcp contract une float %a, %b
349363
; CHECK-LLVM-16: %r59 = fcmp nnan ninf une float %a, %b
350364
; CHECK-LLVM-16: %r60 = fcmp ult float %a, %b
351365
; CHECK-LLVM-16: %r61 = fcmp nnan ult float %a, %b
352366
; CHECK-LLVM-16: %r62 = fcmp ninf ult float %a, %b
353367
; CHECK-LLVM-16: %r63 = fcmp nsz ult float %a, %b
354368
; CHECK-LLVM-16: %r64 = fcmp arcp ult float %a, %b
355-
; CHECK-LLVM-16: %r65 = fcmp fast ult float %a, %b
369+
; CHECK-LLVM-16-DEFAULT: %r65 = fcmp fast ult float %a, %b
370+
; CHECK-LLVM-16-FC2: %r65 = fcmp reassoc nnan ninf nsz arcp contract ult float %a, %b
356371
; CHECK-LLVM-16: %r66 = fcmp nnan ninf ult float %a, %b
357372
; CHECK-LLVM-16: %r67 = fcmp ugt float %a, %b
358373
; CHECK-LLVM-16: %r68 = fcmp nnan ugt float %a, %b
359374
; CHECK-LLVM-16: %r69 = fcmp ninf ugt float %a, %b
360375
; CHECK-LLVM-16: %r70 = fcmp nsz ugt float %a, %b
361376
; CHECK-LLVM-16: %r71 = fcmp arcp ugt float %a, %b
362-
; CHECK-LLVM-16: %r72 = fcmp fast ugt float %a, %b
377+
; CHECK-LLVM-16-DEFAULT: %r72 = fcmp fast ugt float %a, %b
378+
; CHECK-LLVM-16-FC2: %r72 = fcmp reassoc nnan ninf nsz arcp contract ugt float %a, %b
363379
; CHECK-LLVM-16: %r73 = fcmp nnan ninf ugt float %a, %b
364380
; CHECK-LLVM-16: %r74 = fcmp ule float %a, %b
365381
; CHECK-LLVM-16: %r75 = fcmp nnan ule float %a, %b
366382
; CHECK-LLVM-16: %r76 = fcmp ninf ule float %a, %b
367383
; CHECK-LLVM-16: %r77 = fcmp nsz ule float %a, %b
368384
; CHECK-LLVM-16: %r78 = fcmp arcp ule float %a, %b
369-
; CHECK-LLVM-16: %r79 = fcmp fast ule float %a, %b
385+
; CHECK-LLVM-16-DEFAULT: %r79 = fcmp fast ule float %a, %b
386+
; CHECK-LLVM-16-FC2: %r79 = fcmp reassoc nnan ninf nsz arcp contract ule float %a, %b
370387
; CHECK-LLVM-16: %r80 = fcmp nnan ninf ule float %a, %b
371388
; CHECK-LLVM-16: %r81 = fcmp uge float %a, %b
372389
; CHECK-LLVM-16: %r82 = fcmp nnan uge float %a, %b
373390
; CHECK-LLVM-16: %r83 = fcmp ninf uge float %a, %b
374391
; CHECK-LLVM-16: %r84 = fcmp nsz uge float %a, %b
375392
; CHECK-LLVM-16: %r85 = fcmp arcp uge float %a, %b
376-
; CHECK-LLVM-16: %r86 = fcmp fast uge float %a, %b
393+
; CHECK-LLVM-16-DEFAULT: %r86 = fcmp fast uge float %a, %b
394+
; CHECK-LLVM-16-FC2: %r86 = fcmp reassoc nnan ninf nsz arcp contract uge float %a, %b
377395
; CHECK-LLVM-16: %r87 = fcmp nnan ninf uge float %a, %b
378396
; CHECK-LLVM-16: %r88 = fcmp uno float %a, %b
379397
; CHECK-LLVM-16: %r89 = fcmp ninf uno float %a, %b

0 commit comments

Comments
 (0)